emptyCount[j][k] 가 0 인 자리에 학생을 배치해야만 할 수도 있습니다.
21608번 - 상어 초등학교
거 대충 알아들어주시면 안되나요...? ㅠㅠ
제가 공유한 반례는 "좋아하는 학생의 번호는 서로 다르다" / " 자기 자신을 좋아하는 경우는 없다" 가 그렇게 중요한 정보가 아닙니다.
핵심은 emptyCount[j][k] > 0 으로 처리하고 있는 이 게시글 코드의 로직이 잘못되었음을 인지시키는 것이였고,
따라서 이 게시글의 코드가 잘못 구현한 부분이 어디일지를 직관적으로 알아볼 수 있도록 고심해서 만든 예제입니다.
그걸 이렇게 받아치시면 슬퍼집니다....
문제의 조건을 만족하면서 이 코드를 터트리는, 여러분이 좋아하는 '비교적 비 직관적이지만 아무튼 문제의 채점데이터로써 가치가 있는' 반례 하나를 만들었습니다.
7번 학생의 경우, 자신이 좋아하는 학생이 주변에 한명도 없기 때문에 이 코드의 101번째 줄에서 비정상적으로 동작하게 됩니다.
만약 이 부분도 잘 고쳤다고 해도, 5번 학생의 경우, 가장 좋은 자리 두 곳이 모두 emptyCount 값이 0이여서 역시나 이 코드의 137번째 줄에서 비정상적으로 동작하게 됩니다.
이 게시글의 코드같은 경우는 만족도 점수 계산 과정에서 오류가 있는 것이 아니고,
그 이전에 학생을 배치하는 과정에서 논리적인 오류가 있는 케이스였습니다.
그 논리적 오류가 어느 지점인지를 질문자가 이해할 수 있도록 만들기만하면 충분한 상황이었습니다.
따라서 만족도 점수 계산 과정에 영향을 주는 조건인 "어떤 학생이 좋아하는 학생 4명은 모두 다른 학생으로 이루어져 있다", "어떤 학생이 자기 자신을 좋아하는 경우는 없다." 를 만족하는 데이터를 반드시 사용할 필요가 없었던 것이죠.
(위 두 조건은 학생을 배치하는 과정에 영향을 주지 않기 때문에 머리 속으로나 손으로 로직을 따라가는데 전혀 문제가 없습니다.)
그것이 좋아요 2개를 받게 된 이유이지 않을까요...?
댓글을 작성하려면 로그인해야 합니다.
jig6795 2년 전
주어진 조건대로 차례차례 풀었지만
테스크케이스는 통과하고 정답을 제출했을 때 바로 틀렸다고 나오네요
논리적으로 맞는 것 같은데 제가 어느 부분을 놓치고 있는 걸까요?