theuglygoblin   4년 전

제출하면 틀렸습니다. 라고 나옵니다

일단 코드 설명을 드리자면 iom은 처음 나오는 마이너스 부호의 인덱스입니다. 첫 for문은 그걸 구하기 위함이구요. c는 이제 문자열을 하나씩 보다보니까 자릿수 값을 매기기 위해서 곱해주는 값입니다. p는 -가 나오기 전의 수들을 더한 값이고 m은 -가 나온 후 모든 수를 더한 값입니다. 코드는 보시다시피 아주 간단합니다. 뒤에서부터 인덱스 하나씩 살펴보는데 +나 -부호가 나오면 c를 1로 초기화해줘서 그 다음에 나오는 숫자의 자릿수 값을 맞춰줍니다. 예를 들어서 40이 있다면 뒤에서부터 보기때문에 0에는 1이 곱해지고 그 다음인 4엔 10이 곱해지고 그런식입니다. 

음 제가 아직 초보라 하찮은 코드겟지만 왜 틀렸는지 알려주심 감사하겠습니다... 왜 틀렸는지를 모르니까 답답하네여

더 효율적인 코드로 변경할 수 있도록 수정할 부분에 대해서도 알려주시면 감사하겠습니다. 많이 배우고 시퍼요

seico75   4년 전

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라인 이후는 안타서 위의 오류도 수정이 될 수 있겠네요.

theuglygoblin   4년 전

-가 없는 경우를 빼먹었네여... 하하

아직 많이 부족해서 코드를 저런식으로 짤 생각은 못해봤는데

제가 짠 코드보다 보기도 훨씬 편하고 깔끔한것 같네요

답변 정말 감사합니다!

그리고 좋은 답변 확인이 너무 늦어서 죄송합니다

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