9440번 - 숫자 더하기
음.. 잘 모르겠으니 반례 올립니다.
6 1 1 0 0 0 0 0
답 : 200
결과 : 런타임에러
엥? visual studio에서는 잘 되네요...
ideone.com으로 돌려보고 있었습니다.
terminate called after throwing an instance of 'std::invalid_argument' what(): stoi
이유는 검색해보니 stoi 변환에 맞지않는 것을 넣었다고 나오는 에러라고 하는데...
a,b를 출력해보는 방식으로 int로 변환이 되는지를 확인해보셔야 할 것 같아요
a,b 출력해보니 이렇게 나옵니다 참고
�10 100
@dranger97 감사합니다 vs에선 잘 되는데 ideone로 확인해보니 stoi에서 문제가 나오네요. 38번째라인에서 코드의 문제가 있다는 것은 알게되었는데 이젠 틀렸습니다가 나오네요..
이젠 저도 어디에서 꼬였는지 알 수 없으므로 힌트를 드리는 게 맞는 거 같습니다.
내림차순 정렬이 문제이기는 했죠
예를 들어
6 2 3 0 1 0 0 0
을 입력으로 받았다고 칩시다.
우선 가장 작은 수가 최고 자리 수여야 하므로
오름차순 정렬
0 0 0 1 2 3 이 됩니다
여기서 최고 자리수가 0이 되면 안 되므로
[0 0 0 1 2] 3 여기를 내림차순으로 정렬하면 된다고 생각하겠지만
n이 홀수일 때는 자리수가 많은 쪽에 큰수가 들어가서 틀리게 됩니다.
[0 0 0 1 2] 3 을
[1 2 0 0 0] 3 으로 바꿔 주시면 됩니다.
댓글을 작성하려면 로그인해야 합니다.
dkdk6517 2년 전 0
반례로 예상되는 예제들은 다 통과하는 상태입니다.
0이 없는경우, 0이 1개, 0이 2개 이상 모두 생각해서 구현한 코드인데
계속해서 invalid argument 오류가 나오네요. string 이 문젠가 싶어서 char로도 바꿔봐도 그대로 입니다.
뭐가문젤까요...