cheonilchu   5년 전

if문을 많이 사용하여 조금 난잡한 코드입니다.

11 10
7 4 0
1 1 1 1 1 1 1 1 1 1
1 0 0 0 0 0 0 0 0 1
1 0 0 0 1 1 1 1 0 1
1 0 0 1 1 0 0 0 0 1
1 0 1 1 0 0 0 0 0 1
1 0 0 0 0 0 0 0 0 1
1 0 0 0 0 0 0 1 0 1
1 0 0 0 0 0 1 1 0 1
1 0 0 0 0 0 1 1 0 1
1 0 0 0 0 0 0 0 0 1
1 1 1 1 1 1 1 1 1 1

이 테스트 케이스를 넣었을 때

11 10
7 4 0
1 1 1 1 1 1 1 1 1 1
1 0 0 0 0 0 0 0 0 1
1 0 0 0 1 1 1 1 0 1
1 0 0 1 1 2 2 2 2 1
1 0 1 1 2 2 2 * 2 1
1 0 0 0 2 2 2 2 2 1
1 0 0 0 2 2 2 1 2 1
1 0 0 0 2 2 1 1 2 1
1 0 0 0 2 2 1 1 2 1
1 0 0 0 2 2 2 2 - 1
1 1 1 1 1 1 1 1 1 1

*가 시작점이고 -가 최종점입니다.

조건을 맞춘것 같은데 TC와는 다른 29라는 count가 나옵니다...

어디서 잘못된것인지 모르겠습니다!

그리고 여기서 (r,c)는 (x,y)를 의미하는것인지 궁금합니다.

djm03178   5년 전

힌트를 드리자면, 예제 2번의 경우 청소하는 순서는 다음과 같습니다. 1부터 차례대로 청소를 합니다.

cheonilchu   5년 전

항상 답변 주시는 @djm03178님 감사합니다 ㅎㅎ

시작점이랑 조건이 조금 잘못되었던 것 같습니다.

힌트를 주신덕분에 시작점이랑 조건을 찾을 수 있었습니다.

감사합니다!!

kimjh9434   4년 전

아... " 현재 방향을 기준으로 왼쪽방향부터 차례대로 탐색을 진행한다."의 의미가 이거였군요. 


일단 꺽고 시작하는거였군요.

저는 현재 방향에 청소할수 있다면[벽x , 아직청소x] 그대로 가고, 아니면 그때 왼쪽[반시계방향]으로 꺽는다고 생각해서...

그랬더니 예시 2번의 답이 계속 52가 나와서 뭔가했네요. 먼저 꺽도록 수정하니까 문제 풀렸습니다!

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