curve4403   3년 전

게시판에 있는 모든 반례 다 통과했고.. 예제도 통과했는데....

쏘주를 생각나게 하는 제 실력인 것 같습니다......

무엇이 문제일까요... 반례라도.. 주신다면 감사히 받겠습니다,,,,,,



제가 기존 제출한 코드.. 즉 몇 달 전에 풀었을 땐 맞았는데.. 

이번 코드는 저 때와 달리 자료 구조와 상어가 겹칠 때 처리를 좀 다르게 했는데 (나름 다른 감각과 깔끔한 너낌으로 풀어보고자 한 시도...입니다..)오늘의 저는 틀렸습니다를 받아버렸네요,, 

대략적으로 중복 처리 로직은 아래와 같읍니다..

1. 상어 이동 처리 시 map의 이동한 지점에 +1 처리

2. 이동 전, 상어가 있던 지점을 0으로 초기화 하기 때문에, 이동 후의 map 지점이 2 이상의 값인 경우 다른 상어 또한 해당 지점으로 이동했음을 의미하기에 getTheBiggest()를 이용해 가장 크기가 큰 상어만 남김

3. 크기가 가장 큰 상어보다 크기가 작은 나머지 상어를 하나씩 처치할 때마다 해당 map 지점 값 1 감소시켜, 정상적인 상태인(가장 큰 상어만 해당 지점에 남은 상태인) 1로 변경 후 다음 라운드 진행

rhdqor213   3년 전

반례는 문제에 있는 예제 1번이 반례입니다.

148번째 줄을 map[shark.r][shark.c]--;로 바꿔주시기만 하면 맞았습니다를 받으실 수 있습니다.

또한 172번째 줄 for문의 조건문은 i < sharks.size()로 써주시는게 좋습니다.

curve4403   3년 전

감사합니다,, 덕분에 술이 다 깼습니다 ㅜㅜ 복 받으실 겁니다,,!!

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