포스트

코딩테스트 기록 8일차

CodingTest

코딩테스트 기록 7일차

1. 1107번 - 리모컨 (메모리: 65232KB, 시간: 316ms)

Problem Link
Solved Link

문제 정리

  • 수빈이는 현재 채널 100번에서 TV를 보고있다.
  • 특정 번호가 고장이 났고 N채널로 이동하고싶을때 수빈이는 채널 N으로 이동하기 위해 최소 버튼을 몇 번 눌러야하는지 구하라

개념 및 접근법

  • 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000), 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다.
  • 사용가능 수(0~9,+,-)이지만 일부 버튼은 고장 날 수 있다.
  • 모든 채널은 0~1,000,000까지이다.
  • +,-만으로 가는 방법과, 숫자까지 입력해서 이동하는 방법 2개를 비교해서 최소 클릭 수를 출력한다.


2. 11559번: Puyo Puyo (메모리: 14296KB , 시간: 128ms)

Problem Link
Solved Link

문제 정리

  • 뿌요뿌요 게임
  • 필드의 크기는 [6][12]입니다.
  • 각 칸에는 R, Y, G, B, P 또는 .(빈 칸)이 표시됩니다. R, Y, G, B, P는 뿌요(게임 조각)의 색상을 나타냅니다.
  • 뿌요는 상하좌우로 연결될 때, 4개 이상 같은색이 모이면 터진다. 이떄 연쇄반응이 발생할 수 있다.

개념 및 접근법

  • 하나의 노드를 기준으로 상하좌우 값을 확인. BFS사용
  • BFS를 사용해 같은 뿌요가 4개이면 터진다.(제거)
  • 뿌요는 제거되면 빈칸 위의 뿌요들이 아래로 떨어져야한다.(아래부터 채우고, 나머지는 .로 채운다.)
  • 2,3를 반복하며 연쇄반응이 일어나지 않을떄까지 총 연쇄 횃수를 카운트한다.

3. 21610번 - 마법사 상어와 비바라기 (메모리: 20548KB, 시간: 248ms)

Problem Link
Solved Link

문제 정리

  • 필드크기는 N * N이다.
  • 구름의 이동 명령 횟수는 M이다.
  • 비바라기를 시전하면 (N, 1), (N, 2), (N-1, 1), (N-1, 2)에 비구름이 생성된다.
  • 구름이 이동 입력값에 따라 이동한다.
  • 구름이 있는 위치에 물의 양이 1씩 증가한다.
  • 물복사 버그 발생 -> 구름이 있던 칸의 대각선 방향에 있는 바구니 중 물이 있는 바구니의 수 만큼 해당칸 물의 양 증가.
  • 구름이 있던 칸을 제외한 칸들중 물의양이 2이상인 칸에 구름이 생겨난다.
  • 4,5,6,7줄 m만큼반복한다.

개념 및 접근법

  • 필요한 변수들은 static으로 선언하고 메서드로 각 행동을 쪼개서 작업하자.

4. 20056번 - 마법사 상어와 파이어볼 (메모리: 165180KB, 시간: 740ms)

Problem Link
Solved Link

문제 정리

  • 필드 크기 N * N이다.
  • 파이어볼 개수 M, 이동명령횟수는 K이다.
  • 파이어볼의 초기위치, 질량, 속도, 방향이 주어진다.
  • 같은 칸에 여러 파이어 볼이 모일 경우 합쳐짐. 합쳐진 파이어볼은 4개로 분할되고, 해당 조건은 아래와 같다. 질량은 ⌊(합쳐진 파이어볼 질량의 합)/5⌋이다. 속력은 ⌊(합쳐진 파이어볼 속력의 합)/(합쳐진 파이어볼의 개수)⌋이다. 합쳐지는 파이어볼의 방향이 모두 홀수이거나 모두 짝수이면, 방향은 0, 2, 4, 6이 되고, 그렇지 않으면 1, 3, 5, 7이 된다. 질량이 0인 파이어볼은 소멸되어 없어진다.

개념 및 접근법

  • static 변수로 클래스내부에서 호출될수 있게 하고. 요구사항에 맞춰서 메서드별로 작성해보자.
  • 이동, 합치, 분리
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.