Problem Solving/BOJ & Programmers

[BOJ] 1065번: ν•œμˆ˜

geum 2024. 9. 28. 21:24

✏️ 문제

μ–΄λ–€ μ–‘μ˜ μ •μˆ˜ X의 각 μžλ¦¬κ°€ λ“±μ°¨μˆ˜μ—΄μ„ 이룬닀면, κ·Έ 수λ₯Ό ν•œμˆ˜λΌκ³  ν•œλ‹€. λ“±μ°¨μˆ˜μ—΄μ€ μ—°μ†λœ 두 개의 수의 차이가 μΌμ •ν•œ μˆ˜μ—΄μ„ λ§ν•œλ‹€. N이 μ£Όμ–΄μ‘Œμ„ λ•Œ, 1보닀 ν¬κ±°λ‚˜ κ°™κ³ , N보닀 μž‘κ±°λ‚˜ 같은 ν•œμˆ˜μ˜ 개수λ₯Ό 좜λ ₯ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€. 

 

πŸ€– μž…μΆœλ ₯ μ˜ˆμ‹œ

 

πŸ’‘ν’€μ΄

곡차가 0 μ΄ν•˜μΈ 경우λ₯Ό λ†“μΉ˜κ³  μžˆλ‹€κ°€ μ•„! μ‹Άμ–΄μ„œ μ½”λ“œμ— λ°˜μ˜ν•˜λ‹ˆκΉŒ λ°”λ‘œ ν’€λ Έλ‹€.

 

han_numbers = [False]*1001

for i in range(1, 1001):
    if i < 100:
        han_numbers[i] = True
    elif i < 1000:
        left = int(str(i)[0])-int(str(i)[1])
        right = int(str(i)[1])-int(str(i)[2])
        
        if left == right:
            han_numbers[i] = True
            
N = int(input())

answer = 0

for i in range(1, N+1):
    if han_numbers[i]:
        answer += 1

print(answer)