방금 문제를 해결했습니다.
DDDD가 나오는 풀이 http://boj.kr/6781a7c6691745ad...
LSSD가 나오는 풀이 http://boj.kr/ae0bde1180754339...
둘다 맞았습니다 가 나오므로, 출력 항목에 최소한의 명령어 나열이 여러 개 존재하면 그 중 아무거나 출력한다. 라는 내용을 추가해주시면 감사하겠습니다
9019번 - DSLR
방금 문제를 해결했습니다.
DDDD가 나오는 풀이 http://boj.kr/6781a7c6691745ad...
LSSD가 나오는 풀이 http://boj.kr/ae0bde1180754339...
둘다 맞았습니다 가 나오므로, 출력 항목에 최소한의 명령어 나열이 여러 개 존재하면 그 중 아무거나 출력한다. 라는 내용을 추가해주시면 감사하겠습니다
안녕하세요.
물론 문제를 이해하는 사람의 따라 모호하거나 명확하다고 판단하는게 다르겠지만
저도 두 소스코드를 돌리기 전까지 후자의 풀이가 맞았는지 몰랐고,
https://www.acmicpc.net/board/view/38436
이전 질문 글에서도 저와 같은 생각을 했던 분이 계시는 걸 보면 많은 분들이 이를 애매하거나 모호하다고 생각하시는 듯 합니다.
제 생각에는 출력에 적어주는 것이 더 좋을 것 같습니다.
출력에 대해 말하는 유사한 문제를 보면,
https://www.acmicpc.net/problem/12970
같은 경우에도 출력이 여러 가지가 존재할 경우에는 그 중 하나만 출력하라고 하라고 되어 있습니다.
또한, 가능한 방법을 전부 출력해야할 경우,
https://www.acmicpc.net/problem/6603
전체를 출력하나, 방식을 말해주었습니다.
분류에 스페셜저지가 되어있긴 하나, 이것만으로는 완벽하니 않으니 명시적으로 표현해주면 혼란이 좀 더 줄어들 것 같습니다.
댓글을 작성하려면 로그인해야 합니다.
mirusu400 3년 전
예제 입력의 1 16 같은 경우에는
1 -> 2(D) -> 4(DD) -> 8(DDD) -> 16(DDDD) 로 정해가 나오지만
1 -> 10 (L) -> 9(LS) -> 8(LSS) -> 16(LSSD) 로도 풀이가 됩니다.
이처럼 동일한 길이의 명령 나열이라도 다양한 해가 나올수 있습니다.
제가 아직 이 문제를 해결하지 못해서 두 개가 실제로 맞은 답인지 모르고, 대부분 BFS if문 검사시 D부터 하기 때문에 위와 같은 출력이 나오기 어렵지만, 출력 조건에 이러한 항목에 대해 명시되지 않았으므로 수정이 필요하다고 생각합니다
위 두 풀이 모두 정답이라면, 출력 란에 최소한의 명령어 나열이 여러 개 존재하면 그 중 아무거나 출력한다. 라는 내용을 추가해주시면 될 듯 하고,
만약 DDDD만 정답이라면, 출력 란에 최소한의 명령어 나열이 여러 개 존재하면 D, S, L, R 순으로 정렬해 가장 첫번째 명령어를 출력한다.라고 수정해주시면 좋을 것 같습니다.