Logo
(追記) (追記ここまで)

invalid argument 오류 이유가 뭔가요??

9440번 - 숫자 더하기

반례로 예상되는 예제들은 다 통과하는 상태입니다.

0이 없는경우, 0이 1개, 0이 2개 이상 모두 생각해서 구현한 코드인데

계속해서 invalid argument 오류가 나오네요. string 이 문젠가 싶어서 char로도 바꿔봐도 그대로 입니다.

뭐가문젤까요...

음.. 잘 모르겠으니 반례 올립니다.

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 으로 바꿔 주시면 됩니다.

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

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /