#include <iostream>
using namespace std;
int main(void) {
int number;
cin >> number;
int answer = 0;
for(int i=0; i<1; i++){
answer += number % 100;
number /= 100;
}
cout << answer << endl;
return 0;
}
주어진 위 코드를 '한 줄' 만 고쳐서 디버깅하여 해결해야 하는 문제.
1. 위 반복문은 주어진 숫자를 100으로 나눈 나머지 (무조건 맨 뒤 두 자리)를 answer 변수에 더한다.
2. 그리고 100으로 나눈 몫을 원래 변수에 저장한다.
>> 맨 뒤 두자리를 정답에 계속 더하고, 더한 만큼 잘라낸다.
하지만 i<1이라는 제약조건 때문에 딱 한 번만 실행된다.
따라서 이 반복문을 number의 자리수가 남아있지 않을 때까지 돌아갈 수 있도록 해야한다.
#include <iostream>
using namespace std;
int main(void) {
int number;
cin >> number;
int answer = 0;
//수정!
for(int i=0; number > 0; i++){
answer += number % 100;
number /= 100;
}
cout << answer << endl;
return 0;
}
위와 같이 number가 0이 아닐때 계속해서 반복되게 하면 된다. number를 100으로 계속해서 잘라내다 마지막 남은 2자리마저 잘라내고 나면 number는 0이 될 것 이므로 그때까지만 반복하도록 만드는 것.
오랜만에 코드문제 풀려니 이런 간단한것도 꽤 생각하게 만든다.
'개?발 > 프로그래머스' 카테고리의 다른 글
| 택배 상자 꺼내기(Java) (1) | 2025.05.07 |
|---|---|
| 삼총사(Java) (0) | 2024.08.13 |
| 이상한 문자 만들기(Java) (0) | 2024.08.13 |
| 키패드 누르기 (Java) (0) | 2024.08.12 |
| 크기가 작은 부분문자열 (Java) (0) | 2024.08.06 |