반응형
💻 Problem
아주대학교는 1973년에 개교하여 올해로 개교 50주년을 맞이했다.
이에 기뻐한 선우는 어떤 수에 50이 들어가면 그 수를 한 번 더 세기로 하였다.
예를 들어 5152는 한 번만 세지만 5050이나 5051은 한 번 더 센다.
선우의 방식대로 1부터 차례대로 수를 셀 경우, 몇 번째 수를 셀 때 N이 처음으로 등장하는지 구하여라. 선우의 방식대로라면 50은 50번째 수에서 처음 등장하지만, 51은 52번째 수에서 처음 등장한다.
💡 Approach
브론즈 문제긴 한데 처음에 문제 이해가 안 됐음..
1부터 숫자를 세다가 숫자 안에 "50"이 들어가 있으면 그 숫자를 한 번 더 세는 규칙
- 1 → 1번째
- ...
- 49 → 49번째
- 50 → 50번째 ← "50"이 들어가니 한 번 더 셈
- 51 → 52번째 ← 원래 51번째여야 하지만, "50"을 한 번 더 셌기 때문에 한 칸 밀려서 52번째가 됨
구현 방법
- 숫자 1부터 세기 시작
- 현재 숫자에 "50"이 들어가 있으면 카운트 증가
- 카운트 증가 (원래 숫자 세기)
- 숫자를 모두 세면 카운트 출력
✏️ Solution
import sys
input = sys.stdin.readline
N = int(input())
cnt = 0
for i in range(N):
if str(i).find("50") > -1:
cnt += 1
cnt += 1
print(cnt)
- 시간복잡도: O(N)
반응형
'Algorithm > 백준 (BOJ)' 카테고리의 다른 글
[Python] 백준/BOJ 1655번: 가운데를 말해요 (Gold 2) (0) | 2025.06.28 |
---|---|
[Python] 백준/BOJ 24499번: blobyum (Silver 4) (0) | 2025.06.20 |
[Python] 백준/BOJ 5549번: 행성 탐사 (Gold 5) (0) | 2025.06.12 |
[Python] 백준/BOJ 16507번: 어두운 건 무서워 (Silver 1) (0) | 2025.06.11 |