15684번 - 사다리 조작
대략적인 알고리즘은 이렇습니다.
map에서 h의 n에 사다리를 놓으면, n에서 n + 1, 혹은 n + 1에서 n으로 세로 선을 갈아탈 수 있다는 의미로,
map의 [h][n]에는 n + 1로 기록하고, [h][n +1]에는 n으로 기록했습니다.
이 후, chk_result 함수에서 각 n(열)의 처음 h가 1일 때부터 끝 부분 H일 때까지 검사하여, 처음 지점의 n과 끝 지점의 n 값이 다르면 올바르지 않은 결과(i번 사다리를 탔을 때 i번으로 나오지 않는)로 판단합니다.
문제에서 제시된 TC와 질문 게시판에 있는 반례를 모두 찾아 돌렸는데 에러가 나지 않았습니다. 하지만 백준에 제출 시,
혹시 코드에서 제가 놓치거나 잘 못 작성한 알고리즘이 있는지 확인해주시면 정말 감사하겠습니다..!
한 달 전에도 같은 문제로 포기하고, 어제 다시 풀었는데도 같은 문제가 발생해서 매우 혼란스럽네요.. 부끄러움을 무릎쓰고 부탁드립니다..!
map[h][n]이라서 map[31][11]이 돼야합니다
댓글을 작성하려면 로그인해야 합니다.
curve4403 4년 전
대략적인 알고리즘은 이렇습니다.
map에서 h의 n에 사다리를 놓으면, n에서 n + 1, 혹은 n + 1에서 n으로 세로 선을 갈아탈 수 있다는 의미로,
map의 [h][n]에는 n + 1로 기록하고, [h][n +1]에는 n으로 기록했습니다.
이 후, chk_result 함수에서 각 n(열)의 처음 h가 1일 때부터 끝 부분 H일 때까지 검사하여, 처음 지점의 n과 끝 지점의 n 값이 다르면 올바르지 않은 결과(i번 사다리를 탔을 때 i번으로 나오지 않는)로 판단합니다.
문제에서 제시된 TC와 질문 게시판에 있는 반례를 모두 찾아 돌렸는데 에러가 나지 않았습니다. 하지만 백준에 제출 시,
혹시 코드에서 제가 놓치거나 잘 못 작성한 알고리즘이 있는지 확인해주시면 정말 감사하겠습니다..!
한 달 전에도 같은 문제로 포기하고, 어제 다시 풀었는데도 같은 문제가 발생해서 매우 혼란스럽네요.. 부끄러움을 무릎쓰고 부탁드립니다..!