개발후라이
개발후라이
개발후라이
  • 분류 전체보기 (287)
    • Web Front End (76)
      • Javascript & Typescript (26)
      • React (12)
      • Vue (4)
      • Nodejs (1)
      • HTML (6)
      • CSS (8)
      • HTTP (6)
      • 책 - Review (8)
    • TIL (0)
    • Problem Solved (135)
      • 알고리즘 (4)
      • BOJ (67)
      • Programmers (8)
      • HackerRank (33)
      • LeetCode (23)
    • 회고 (4)
      • 오늘의 회고 (16)
      • 주간 회고 (15)
      • 월간 회고 (7)
      • WakaTime (9)
    • Git (3)
    • 기타 (15)
      • 취업 (5)
      • 자격증 (1)

블로그 메뉴

  • GitHub
  • LinkedIn
  • 홈

인기 글

태그

  • 회고
  • 프론트엔드
  • JavaScript
  • 노마드북클럽
  • 개발자
  • TypeScript
  • 릿코드
  • 자바스크립트
  • 노개북
  • 오늘의회고

최근 댓글

최근 글

전체 방문자
오늘
어제

티스토리

hELLO · Designed By 정상우.
개발후라이

개발후라이

Problem Solved/HackerRank

[HackerRank][Javascript] Array - New Year Chaos

2020. 6. 21. 12:28
반응형

문제

New Year Chaos

문제 설명

놀이기구를 기다리는 줄에서 뇌물이 최소 몇 번 오갔는지 구하는 문제.
(단, 한 사람이 뇌물을 3번 이상 준 경우는 Too chaotic을 결과로 해야 한다.)

문제 이해가 어려워 솔루션을 찾아보고 이해하는 방식을 택했다.
입력값은 뇌물로 인해 순서가 뒤섞인 배열이고, 출력값은 숫자 또는 문자열이다.

  1. 우선 뇌물을 주고받았는지를 찾기 위해 q의 길이만큼 반복문을 돈다.
  2. 한 사람이 뇌물을 3번 이상 줬다면 자신의 원래 위치보다 3 이상 앞에 있을 것이다.
    • 이것을 바탕으로 q[i]는 현재 위치, i + 1은 원래 위치로 두고 3 이상이면 Too chaotic을 반환하도록 한다.
  3. 카오식하지 않다면 현재 위치보다 1 또는 2 작은 위치에서 뇌물을 주고받은 사람이 있는지 확인한다.
    • 현재 위치의 수보다 크다면 뇌물을 주고받은 것이다.
  4. 뇌물을 주고받은 사람이 있으면 counter를 1씩 증가시켜 준다.
  5. 최종 결과값인 counter를 반환한다.
  • 솔루션을 보면서 이해해 보니 그렇게까지 어려운 문제는 아니었다. 문제가 길어도 진득하게 읽고 풀려고 해야겠다.

성공 코드

function minimumBribes(q) {
  let counter = 0;

  for (let i = q.length - 1; i >= 0; i--) {
    if (q[i] - (i + 1) >= 3) return "Too chaotic";

    for (let j = Math.max(0, q[i] - 2); j < i; j++) if (q[j] > q[i]) counter++;
  }

  return counter;
}
반응형
저작자표시 (새창열림)
    'Problem Solved/HackerRank' 카테고리의 다른 글
    • [HackerRank][Javascript] Hash Tables: Ransom Note
    • [HackerRank][Javascript] Array - Minimum Swaps 2
    • [HackerRank][Javascript] Arrays: Left Rotation
    • [HackerRank][Javascript] 2D Array - DS
    개발후라이
    개발후라이
    어제보다 오늘 발전하기 위한 공간 https://github.com/choisohyun

    티스토리툴바