6087번 - 레이저 통신
안녕하세요.
계속 틀렸다고 나오는데... 어디가 틀렸는지 찾지못하고 있습니다.
먼저 알고리즘 부터 설명 드리겠습니다.
2. 시작점에서 사방(아래, 위, 왼쪽, 오른쪽) 으로 레이저를 직선으로 발사합니다.
3. 레이저가 발사된 지점을 기준으로 레이저가 지나간 지점들에 +1 하여 발사된 레이저의 횟수를 저장한 후, 레이저가 지나간 부분들을 queue에 저장합니다.
4. 레이저가 끝나면, queue에 저장되어 있는 위치에서 다시 사방으로 레이저를 발사하고 위의 3번 과정과 동일하게 레이저의 횟수 와 위치를 저장합니다.
단, 레이저가 한번 지나간 곳은 다시 지나가지 않도록 합니다.
5. 모든 지점에 레이저가 지나간 후에, 1번에서 찾은 끝점에서 레이저 발사 횟수를 구해줍니다. 최종적으로 레이저 발사횟수 -1 을 하여 거울의 개수를 구합니다.
어느 부분을 놓치고 있는건지 모르겠습니다. 틀린부분 또는 반례가 있다면 부탁드립니다.
고수님들 도와주십쇼. :)
47줄 때문에 그렇습니다.
혹시 나중에 질문 글을 볼 다른 분들을 위해서 케이스 3개 올리겠습니다.
답은 전부 1입니다.
4개 더 추가하겠습니다.
첫 번째 케이스의 답은 1이고, 나머지 두 개의 답은 2입니다.
감사합니다. 정말 도움 됐습니다.
콕 찝어주셔서 금방 알 수 있었습니다.^^
댓글을 작성하려면 로그인해야 합니다.
wjsrptmd 5년 전 1
안녕하세요.
계속 틀렸다고 나오는데... 어디가 틀렸는지 찾지못하고 있습니다.
먼저 알고리즘 부터 설명 드리겠습니다.
2. 시작점에서 사방(아래, 위, 왼쪽, 오른쪽) 으로 레이저를 직선으로 발사합니다.
3. 레이저가 발사된 지점을 기준으로 레이저가 지나간 지점들에 +1 하여 발사된 레이저의 횟수를 저장한 후, 레이저가 지나간 부분들을 queue에 저장합니다.
4. 레이저가 끝나면, queue에 저장되어 있는 위치에서 다시 사방으로 레이저를 발사하고 위의 3번 과정과 동일하게 레이저의 횟수 와 위치를 저장합니다.
단, 레이저가 한번 지나간 곳은 다시 지나가지 않도록 합니다.
5. 모든 지점에 레이저가 지나간 후에, 1번에서 찾은 끝점에서 레이저 발사 횟수를 구해줍니다. 최종적으로 레이저 발사횟수 -1 을 하여 거울의 개수를 구합니다.
어느 부분을 놓치고 있는건지 모르겠습니다. 틀린부분 또는 반례가 있다면 부탁드립니다.
고수님들 도와주십쇼. :)