wjsrptmd   5년 전

안녕하세요. 

계속 틀렸다고 나오는데... 어디가 틀렸는지 찾지못하고 있습니다.

먼저 알고리즘 부터 설명 드리겠습니다.

  1. 시작지점 'C' 중 먼저 찾은 위치를 시작점, 나중에 찾은 위치를 끝점 으로 정했습니다.

2. 시작점에서 사방(아래, 위, 왼쪽, 오른쪽) 으로 레이저를 직선으로 발사합니다.

3. 레이저가 발사된 지점을 기준으로 레이저가 지나간 지점들에 +1 하여 발사된 레이저의 횟수를 저장한 후,  레이저가 지나간 부분들을 queue에 저장합니다. 

4. 레이저가 끝나면, queue에 저장되어 있는 위치에서 다시 사방으로 레이저를 발사하고 위의 3번 과정과 동일하게 레이저의 횟수 와 위치를 저장합니다.

    단, 레이저가 한번 지나간 곳은 다시 지나가지 않도록 합니다.

5. 모든 지점에 레이저가 지나간 후에, 1번에서 찾은 끝점에서 레이저 발사 횟수를 구해줍니다. 최종적으로 레이저 발사횟수 -1 을 하여 거울의 개수를 구합니다.

어느 부분을 놓치고 있는건지 모르겠습니다. 틀린부분 또는 반례가 있다면 부탁드립니다.

고수님들 도와주십쇼.  :)

hello70825   5년 전

47줄 때문에 그렇습니다.

혹시 나중에 질문 글을 볼 다른 분들을 위해서 케이스 3개 올리겠습니다.

답은 전부 1입니다.

hello70825   5년 전

4개 더 추가하겠습니다.

첫 번째 케이스의 답은 1이고, 나머지 두 개의 답은 2입니다.

wjsrptmd   5년 전

감사합니다. 정말 도움 됐습니다.

콕 찝어주셔서 금방 알 수 있었습니다.^^

댓글을 작성하려면 로그인해야 합니다.