코딩테스트 기록 8일차
CodingTest
코딩테스트 기록 7일차
1. 1107번 - 리모컨 (메모리: 65232KB, 시간: 316ms)
문제 정리
- 수빈이는 현재 채널 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)
문제 정리
- 뿌요뿌요 게임
- 필드의 크기는 [6][12]입니다.
- 각 칸에는 R, Y, G, B, P 또는 .(빈 칸)이 표시됩니다. R, Y, G, B, P는 뿌요(게임 조각)의 색상을 나타냅니다.
- 뿌요는 상하좌우로 연결될 때, 4개 이상 같은색이 모이면 터진다. 이떄 연쇄반응이 발생할 수 있다.
개념 및 접근법
- 하나의 노드를 기준으로 상하좌우 값을 확인. BFS사용
- BFS를 사용해 같은 뿌요가 4개이면 터진다.(제거)
- 뿌요는 제거되면 빈칸 위의 뿌요들이 아래로 떨어져야한다.(아래부터 채우고, 나머지는 .로 채운다.)
- 2,3를 반복하며 연쇄반응이 일어나지 않을떄까지 총 연쇄 횃수를 카운트한다.
3. 21610번 - 마법사 상어와 비바라기 (메모리: 20548KB, 시간: 248ms)
문제 정리
- 필드크기는 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)
문제 정리
- 필드 크기 N * N이다.
- 파이어볼 개수 M, 이동명령횟수는 K이다.
- 파이어볼의 초기위치, 질량, 속도, 방향이 주어진다.
- 같은 칸에 여러 파이어 볼이 모일 경우 합쳐짐. 합쳐진 파이어볼은 4개로 분할되고, 해당 조건은 아래와 같다. 질량은 ⌊(합쳐진 파이어볼 질량의 합)/5⌋이다. 속력은 ⌊(합쳐진 파이어볼 속력의 합)/(합쳐진 파이어볼의 개수)⌋이다. 합쳐지는 파이어볼의 방향이 모두 홀수이거나 모두 짝수이면, 방향은 0, 2, 4, 6이 되고, 그렇지 않으면 1, 3, 5, 7이 된다. 질량이 0인 파이어볼은 소멸되어 없어진다.
개념 및 접근법
- static 변수로 클래스내부에서 호출될수 있게 하고. 요구사항에 맞춰서 메서드별로 작성해보자.
- 이동, 합치, 분리
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.