scared22   5년 전

출력에 아래와 같이 명시가 되어 있습니다.

매직 스타를 만들 수 있는 방법 중에 사전 순으로 가장 앞서는 방법을 출력한다. (모든 줄을 순서대로 붙여서 하나의 문자열로 만든 뒤, 사전 순으로 비교한다.) 항상 정답이 존재하는 경우만 입력으로 주어진다.

위에 글에서 '사전 순으로 가장 앞서는 방법을 출력한다' 라는 항목을 뺏으면 좋겠습니다.

저는 이문제를 처음 풀 때 답이 될수 있는경우가 여러개라서 그중에서 사전순으로 빠른것을 출력하기위해 문자열 비교부분을 구현하고 제출했지만 오답이었습니다.

그런데 문자열 비교하는 부분을 빼고 제출 하니 바로 정답을 맞을 수 있었습니다.

문제의도가 다를 수도 있다고 생각하여 수정 요청 부탁드립니다.


jh05013   5년 전

제출하신 10022801번 코드는 예제조차 제대로 안 나옵니다.

Green55   5년 전

코드를 보진 않았지만, 앞쪽 칸부터 사전 순으로 앞서는 알파벳부터 시도하면서 칸을 채우면, 처음 완성되는 것이 자연스럽게 사전순으로 앞서는 결과가 됩니다.

scared22   5년 전

제출하신 10022801번 코드 제가 visual studio에서 예제 테스트 해본 결과 제대로 나왔습니다 ㅜㅜ 

Green55   5년 전

strcmp의 구현이 VS와 GCC에서 달라서 생기는 일입니다.

표준에 의하면 strcmp는 반환값으로 0보다 작은 값, 0, 0보다 큰 값 중 하나를 리턴합니다.

VS는 "0보다 작은 값"으로 항상 -1을 리턴하도록 구현 되있지만, 백준 채점환경인 GCC에서는 그렇지 않습니다.

따라서 strcmp(combine, result) == -1 은 VS에서만 의도대로 작동하는 코드입니다.

scared22   5년 전

조언 감사합니다  ㅎㅎ

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