2026. 1. 8. 01:17ㆍPS (Program Solving)/BOJ (백준)
문제 설명
https://www.acmicpc.net/problem/30664

접근 방법 - 기초적인 사칙연산 문제
백준의 30664번 문제는 기초적인 사칙연산을 활용하여 간단히 해결할 수 있는 문제이다.
해당 문제는, 구매한 스크래치 카드의 식별 번호에 대한 당첨 여부를 판별하여 이에 알맞은 정답을 출력하면 되는 문제이다.
외국어로 작성된 문제 지문에 대한 해석본은 아래 링크에 있으니, 문제 해결할 시 함께 참고하면 좋을 것이다.
https://www.acmicpc.net/board/view/129949
출력의 설명을 확인해 보면, 입력으로 주어지는 식별 번호가 42로 나누어 떨어지는지를 판별하면 되는 간단한 문제임을 알 수 있다.
다만 입력의 설명을 다소 주의해야 하는데, 입력값으로 최대 30자리의 정수가 주어진다는 점이 여기에 명시되어 있다.
이는 C, Java에서 사용할 수 있는 자료형인 int, long, long long int로는 처리할 수 없는 큰 용량의 값이 입력으로 주어질 수 있다는 점을 의미한다.
물론 문자열 형식으로 받아내어 연산하는 방법이 있긴 하나, 브론즈5 문제라 필자는 그렇게까지 하진 않았다.(?)
따라서 이렇게 큰 정수를 보다 손쉽게 처리하기 위해서, 필자는 평상시 활용하는 C++ 언어를 대신하여 Python을 통해 코드를 작성해 보았다.
결과적으로, 필자는 무한 반복문을 통해서 0이 입력되기 전까지는 연산을 진행하게 하였고 42로 나누어 떨어지는지를 확인해 가며 그에 알맞은 정답을 출력하도록 코드를 작성하였다.
나누어 떨어진다면 "PREMIADO"를, 아니라면 "TENTE NOVAMENTE"를 출력하게끔 하였다.
해당 문제에 대한 해설로는 위 설명으로 충분한 것으로 판단되어, 더 구체적인 설명은 생략하고자 한다.
혹여나 해당 문제를 해결하는 데에 어려움을 겪고 있다면, 아래의 코드를 참고해 보길 바란다.
필자는 아래처럼 코드를 작성하여 문제를 해결하였다.
성공한 코드
# 백준 30664번 코드
while 1:
num = int(input())
if num==0:
break
if num % 42 == 0:
print("PREMIADO")
else:
print("TENTE NOVAMENTE")
제출 결과

(2024.07.10 백준 30664번 문제 제출 결과)
'PS (Program Solving) > BOJ (백준)' 카테고리의 다른 글
| [백준 BOJ] 28635번 Индикатор (C++/cpp) (0) | 2026.01.08 |
|---|---|
| [백준 BOJ] 31656번 Sticky Keys (C++/cpp) (0) | 2026.01.08 |
| [백준 BOJ] 2740번 행렬 곱셈 (C++/cpp) (0) | 2026.01.08 |
| [백준 BOJ] 11497번 통나무 건너뛰기 (C++/cpp) (0) | 2026.01.04 |
| [백준 BOJ] 2965번 캥거루 세마리 (C++/cpp) (0) | 2025.12.29 |