본문 바로가기

BOJ/이건 '진짜'다

백준 9376 / 탈옥 이 문제를 단번에 풀었다면 나는 당장 하산했을 것이다. 처음 문제를 풀었을 때 여러가지 해결법이 떠올랐다. 그중 가장 그럴 듯 했던건 모든 문의 좌표를 받고 0개를 열었을 때, 1개를 열었을 때, 2개를 열었을 때 ...... n개를 열었을 때 탈옥에 성공하는 문의 최소개수를 구하는 방법이었는데. 한 케이스당 bfs를 2번씩 해야되니 시간초과에 걸렸다. 맵이 작았으면 괜찮았을 텐데.. 이 문제의 해결법은 이렇다. 죄수1과 죄수2 그리고 맵 밖에 있는 사람이 있다고 가정하자. (문제에 힌트가 있다. 상근이는 어디에나 있을 수 있다고..) 맵도 바꿔준다. 맵의 가장자리 부분에 빈공간(.)를 추가시켜준다. 그리고 죄수1과 죄수2 밖의사람의 모든 dist를 bfs로 구한다 이떄 문이 아닌 빈 공간을 지나가는 경..
백준 13460 / 구슬 탈출 2 (해결) 캐도캐도 끝없이 반례가 나온다. 정신나간다. 내 코드는 500줄 가까이되도 정답이 아닌데 다른 정답코드를 보니 100줄만 되도 맞더라. 다음에 다시 꼭 풀어볼문제. 코드가 굉장히 더럽다. 반례 https://www.acmicpc.net/board/view/23382 풀었다. 해답은 '10번 이하로 움직여서 빨간 구슬을 구멍을 통해 빼낼 수 없으면 -1을 출력한다.' 에 있다. 판을 기울이는 모든 경우에 대해 생각해보자. 일단 첫번째, 오,왼,위,아래로 기울일 수 있다. 그다음 두번째도 물론 오왼위아래로 기울일 수 있지만, 잘 생각해보면 오오, 왼왼, 위위, 아래아래가 의미가 없다. 또한 오왼, 왼오, 위아래, 아래위는 구슬의 위치가 다시 돌아옴으로 이것또한 의미가 없다. 그렇다면 오아래, 왼아래, 왼위,..