1) 생각 큰 고민없이 리모콘 숫자만 맞추는 식으로 코드를 작성한 후 '틀렸습니다'를 맛보고 고민을 해서 코드를 작성하였다. 2) 방안 최대 999999 개만 살펴보면 되므로 모든 Case를 살펴보았고, 각각의 숫자를 검사하여 고장난 버튼의 숫자가 있으면 건너뛰고 그렇지 않으면 N값 과의 차이와 그 숫자를 min으로 저장해 둔 후 min의 최소값이 되는시점(N값과의 차이가 가장 작은시점 -> 0부터 검사하므로 점점 작아지다 최저 값을 찍은 뒤 점점 커짐) 에서 반복문을 빠져나왔다.이후 한 번 더 틀린것을 확인하고 101 같은경우 위의 반복문만 확인하면 4가 나오겠지만 기본 채널이 100번이므로 +1만 해주면되는것을 발견하고 100과 N의 차와 위에서 구한 최소값을 비교하여 최소값을 출력하였다. 12345..
1) 생각 우선 이동해야하는것이 2가지이다. 하나는 고슴도치(S)이고 다른 하나는 물(*)이다. 비버(D)와 돌(X)은 움직이지 않으므로 if 문 처리만 잘 해주고 신경쓰지 않는다.침수 예정 지역으로 고슴도치가 이동해서는 안되므로 맨 처음에 물을 먼저 퍼트리는것이 편하다 생각하였다. 2) 방안 물을 맨 처음 퍼트리면 이것은 예상 경로를 미리 놓은 것이기 때문에 물이 한 턴 앞서나가게된다. 따라서 반복문에 들어가기전 한 번 수행후 물의 퍼트림을 1번 쉬어줌으로서 맨 처음 예상 침수 경로만 만들어 놓고 진행하였다. 물의 경우 마지막 퍼트린 지점만 알고있으면 되고, 또 물이 처음에 여러개 등장할 수 있으므로 list로 만들어준후 이전 좌표를 List에서 제거하면서 생성하였다.고슴도치와 물의 이동경로 좌표를 위..
1) 생각 최단 시간을 찾아야하므로 BFS를 이용하여 각 n을 방문해보면서 이미 방문한 지점은 제외하고 k 지점에 도착하는 순간을 찾으면된다. 똑같은 숨바꼭질 문제가 여럿있고 다 비슷한 풀이 방식을 요구한다. 이문제의 경우 다른 점은 최소값 이외에도 최소값에 맞춰서 몇 번이나 도달할 수 있는가를 물어본다. 2) 방안 최소값만 찾으면 될 경우 break 문을 통해 바로 빠져나왔겠지만 그 숫자도 알아야하므로 BFS의 특징인 단계별로 나아간다는 점이 있으므로(뒤로, 앞으로, *2가 모두 +1 씩이므로) 일반적인 BFS 방식으로 풀수있다. 처음 도착하는 값이 최소 값이므로 그 값을 보관해두고 개수를 세고 다른 이전 값과 다른 값이 들어오면 카운트 변수인 cnt를 올리지 않고 반복문을 종료시켰다. 12345678..
- Total
- Today
- Yesterday