2697번 - 다음수 구하기
이것저것 테스트 케이스를 바꿔봐도 계속 런타임 에러를 벗어나지 못하네요 ....
인덱스 참조 오류도 아닌 것 같고, 채점이 50퍼까지 돌다가 런타임 에러가 뜨는데 이유가 무엇인지 도저히 감이 오지 않아요 ㅠㅠ
우선 제 코드 설명을 드리자면
1번-입력받은정수를 한자릿수마다 나누어 int 배열에 삽입하여 초기화 합니다.
2번 '다음 수' 는 입력받은 수의 각 자릿수 숫자들의 갯수를 바꾸지 않고 재 조합한 수들 중 입력받은 수 보다는 크지만, 재 조합한 수들 중에선 가장 작은 수를 의미한다고 합니다.
그래서 저는 맨 뒤 -1 부터 앞으로 오면서(j)
j 번째의 수보다 큰 숫자가 j 바로 뒤에 존재하는지 루프를 돌립니다.
만약 존재한다면 s에 j 를 저장하구요,
j 번째 뒤의 숫자들 중 j 보다 크지만 가장 작은 수의 인덱스를 a에 저장합니다.
3번. 인덱스 s와 a의 값을 서로 교환한 다음, s+1번째부터 끝까지 sort를 이용해서 작은 숫자부터 앞으로 오게 정렬합니다.
그리곤 이 배열을 루프를 사용하여 한자리씩 출력합니다.
'다음수'를 찾는 알고리즘은 맞는 것 같은데... 왜 ......런타임 에러가 뜨는지 감을 잡을 수 없네요ㅠㅠ
출력은 제대로 나오는데...
제 코드 설명한걸 보니 저도 참 난해하네요....ㅠㅠ
능력자분들 도와주세요!!
"BIGGEST" 를 출력하는 조건문에는 break가 아닌 continue가 들어가야겠네용
댓글을 작성하려면 로그인해야 합니다.
salted 8년 전
이것저것 테스트 케이스를 바꿔봐도 계속 런타임 에러를 벗어나지 못하네요 ....
인덱스 참조 오류도 아닌 것 같고, 채점이 50퍼까지 돌다가 런타임 에러가 뜨는데 이유가 무엇인지 도저히 감이 오지 않아요 ㅠㅠ
우선 제 코드 설명을 드리자면
1번-입력받은정수를 한자릿수마다 나누어 int 배열에 삽입하여 초기화 합니다.
2번 '다음 수' 는 입력받은 수의 각 자릿수 숫자들의 갯수를 바꾸지 않고 재 조합한 수들 중 입력받은 수 보다는 크지만, 재 조합한 수들 중에선 가장 작은 수를 의미한다고 합니다.
그래서 저는 맨 뒤 -1 부터 앞으로 오면서(j)
j 번째의 수보다 큰 숫자가 j 바로 뒤에 존재하는지 루프를 돌립니다.
만약 존재한다면 s에 j 를 저장하구요,
j 번째 뒤의 숫자들 중 j 보다 크지만 가장 작은 수의 인덱스를 a에 저장합니다.
3번. 인덱스 s와 a의 값을 서로 교환한 다음, s+1번째부터 끝까지 sort를 이용해서 작은 숫자부터 앞으로 오게 정렬합니다.
그리곤 이 배열을 루프를 사용하여 한자리씩 출력합니다.
'다음수'를 찾는 알고리즘은 맞는 것 같은데... 왜 ......런타임 에러가 뜨는지 감을 잡을 수 없네요ㅠㅠ
출력은 제대로 나오는데...
제 코드 설명한걸 보니 저도 참 난해하네요....ㅠㅠ
능력자분들 도와주세요!!