33+77
- 가 없는 경우도 있겠죠.
큰 수정없이 iom 초기값만 잘 설정해도 되겠네요.
그리고, 아래 코드는
for (i=len; i>=0; i--){ if (a[i]=='-') iom = i; }
이렇게 바꾸면 어떨까요?
for (iom=0; iom < len; iom++){ if (a[iom]=='-') break; }
- 가 없으면 len 값을 가질 것이니 27라인 이후는 안타서 위의 오류도 수정이 될 수 있겠네요.
1541번 - 잃어버린 괄호
-가 없는 경우를 빼먹었네여... 하하
아직 많이 부족해서 코드를 저런식으로 짤 생각은 못해봤는데
제가 짠 코드보다 보기도 훨씬 편하고 깔끔한것 같네요
답변 정말 감사합니다!
그리고 좋은 답변 확인이 너무 늦어서 죄송합니다
댓글을 작성하려면 로그인해야 합니다.
theuglygoblin 4년 전
제출하면 틀렸습니다. 라고 나옵니다
일단 코드 설명을 드리자면 iom은 처음 나오는 마이너스 부호의 인덱스입니다. 첫 for문은 그걸 구하기 위함이구요. c는 이제 문자열을 하나씩 보다보니까 자릿수 값을 매기기 위해서 곱해주는 값입니다. p는 -가 나오기 전의 수들을 더한 값이고 m은 -가 나온 후 모든 수를 더한 값입니다. 코드는 보시다시피 아주 간단합니다. 뒤에서부터 인덱스 하나씩 살펴보는데 +나 -부호가 나오면 c를 1로 초기화해줘서 그 다음에 나오는 숫자의 자릿수 값을 맞춰줍니다. 예를 들어서 40이 있다면 뒤에서부터 보기때문에 0에는 1이 곱해지고 그 다음인 4엔 10이 곱해지고 그런식입니다.
음 제가 아직 초보라 하찮은 코드겟지만 왜 틀렸는지 알려주심 감사하겠습니다... 왜 틀렸는지를 모르니까 답답하네여
더 효율적인 코드로 변경할 수 있도록 수정할 부분에 대해서도 알려주시면 감사하겠습니다. 많이 배우고 시퍼요