2024. 9. 13. 18:00ㆍPCCE 기출문제
https://school.programmers.co.kr/learn/courses/30/lessons/340205
문제 설명
2자리 이상의 정수 number가 주어집니다. 주어진 코드는 이 수를 2자리씩 자른 뒤, 자른 수를 모두 더해서 그 합을 출력하는 코드입니다. 코드가 올바르게 작동하도록 한 줄을 수정해 주세요.
제한사항
- 10 ≤ number ≤ 2,000,000,000
- number의 자릿수는 2의 배수입니다.
입출력 예
입력 #1
4859 |
출력 #1
107 |
입력 #2
29 |
출력 #2
29 |
입출력 예 설명
입출력 예 #1
- 입력된 수를 2자리씩 나눠 합치면 다음과 같습니다.
- 48 + 59 = 107
입출력 예 #2
- 입력된 수를 2자리씩 나눠 합치면 다음과 같습니다.
- 29 = 29
디버깅(Debugging) 문제 안내
- 디버깅(Debugging)은 이미 완성된 코드에서 버그를 찾아 수정하는 문제 타입입니다.
- 1줄만 수정하여 버그를 고치세요.
- 2줄 이상 수정할 경우, 실행 결과에 에러 메시지가 표시됩니다.
문제 코드
number = int(input())
answer = 0
for i in range(1):
answer += number % 100
number //= 100
print(answer)
주어진 숫자를 두 자릿수만큼 자른 뒤, 해당 값들을 합치는 문제입니다.
이 문제에서는 두 자릿수만큼 자른다는 걸 100으로 나눈 나머지를 더하는 것으로 구현을 했습니다.
하지만 반복문의 반복이 0번으로 설정되어, 두 자릿수 값 이외에는 값을 계산할 수 없습니다.
while과 for은 둘 모두 반복문이지만 사용하는 경우가 좀 다릅니다.
while은 반복의 횟수가 명확하게 주어져 있지 않은 경우에 사용합니다. 이 문제처럼 주어질 숫자가 몇 자리인지 명확하지 않을 때 사용하죠.
for은 반복의 횟수가 명확하게 주어져 있을 경우에 사용합니다. 이 문제에서 주어질 숫자가 4자리로 명확하다면, 반복 횟수는 2로 설정할 수 있죠.
for 반복문을 while 반복문으로 바꿔주는 것으로 정답 코드를 작성해보겠습니다.
number = int(input())
answer = 0
while number > 0:
answer += number % 100
number //= 100
print(answer)
number은 100으로 나눠주는 것으로 몫만을 계속 남깁니다. 이 몫이 0이하가 되는 순간, 더 이상 number는 나누는 의미가 없어지기 때문에 반복문을 종료합니다.
answer에는 number를 100으로 나눈 나머지를 더해주는 것으로 두 자릿수 값을 계속 더해주면 됩니다.
'PCCE 기출문제' 카테고리의 다른 글
[PCCE 기출문제] 5번 / 심폐소생술 (1) | 2024.09.15 |
---|---|
[PCCE 기출문제] 4번 / 병과분류 (0) | 2024.09.14 |
[PCCE 기출문제] 2번 / 각도 합치기 (0) | 2024.09.12 |
[PCCE 기출문제] 1번 / 문자 출력 (0) | 2024.09.11 |
[PCCE 기출문제] 10번 / 데이터 분석 (0) | 2024.09.10 |