[λ°±μ€€/python] 1436번 : μ˜ν™”κ°λ… 숌

2021. 3. 16. 23:45

문제

666은 쒅말을 λ‚˜νƒ€λ‚΄λŠ” 숫자라고 ν•œλ‹€. λ”°λΌμ„œ, λ§Žμ€ λΈ”λ‘λ²„μŠ€ν„° μ˜ν™”μ—μ„œλŠ” 666이 λ“€μ–΄κ°„ 제λͺ©μ„ 많이 μ‚¬μš©ν•œλ‹€. μ˜ν™”κ°λ… μˆŒμ€ μ„Έμƒμ˜ 쒅말 μ΄λΌλŠ” μ‹œλ¦¬μ¦ˆ μ˜ν™”μ˜ 감독이닀. 쑰지 λ£¨μΉ΄μŠ€λŠ” μŠ€νƒ€μ›Œμ¦ˆλ₯Ό λ§Œλ“€ λ•Œ, μŠ€νƒ€μ›Œμ¦ˆ 1, μŠ€νƒ€μ›Œμ¦ˆ 2, μŠ€νƒ€μ›Œμ¦ˆ 3, μŠ€νƒ€μ›Œμ¦ˆ 4, μŠ€νƒ€μ›Œμ¦ˆ 5, μŠ€νƒ€μ›Œμ¦ˆ 6κ³Ό 같이 이름을 μ§€μ—ˆκ³ , ν”Όν„° μž­μŠ¨μ€ λ°˜μ§€μ˜ μ œμ™•μ„ λ§Œλ“€ λ•Œ, λ°˜μ§€μ˜ μ œμ™• 1, λ°˜μ§€μ˜ μ œμ™• 2, λ°˜μ§€μ˜ μ œμ™• 3κ³Ό 같이 μ˜ν™” 제λͺ©μ„ μ§€μ—ˆλ‹€.

ν•˜μ§€λ§Œ μˆŒμ€ μžμ‹ μ΄ 쑰지 λ£¨μΉ΄μŠ€μ™€ ν”Όν„° μž­μŠ¨μ„ λ›°μ–΄λ„˜λŠ”λ‹€λŠ” 것을 보여주기 μœ„ν•΄μ„œ μ˜ν™” 제λͺ©μ„ μ’€ λ‹€λ₯΄κ²Œ λ§Œλ“€κΈ°λ‘œ ν–ˆλ‹€.

μ’…λ§μ˜ μˆ«μžλž€ μ–΄λ–€ μˆ˜μ— 6이 적어도 3κ°œμ΄μƒ μ—°μ†μœΌλ‘œ λ“€μ–΄κ°€λŠ” 수λ₯Ό λ§ν•œλ‹€. 제일 μž‘μ€ μ’…λ§μ˜ μˆ«μžλŠ” 666이고, κ·Έ λ‹€μŒμœΌλ‘œ 큰 μˆ˜λŠ” 1666, 2666, 3666, .... κ³Ό κ°™λ‹€.

λ”°λΌμ„œ, μˆŒμ€ 첫 번째 μ˜ν™”μ˜ 제λͺ©μ€ μ„Έμƒμ˜ 쒅말 666, 두 번째 μ˜ν™”μ˜ 제λͺ©μ€ μ„Έμƒμ˜ 쒅말 1666 μ΄λ ‡κ²Œ 이름을 지을 것이닀. μΌλ°˜ν™”ν•΄μ„œ μƒκ°ν•˜λ©΄, N번째 μ˜ν™”μ˜ 제λͺ©μ€ μ„Έμƒμ˜ 쒅말 (N번째둜 μž‘μ€ μ’…λ§μ˜ 숫자) 와 κ°™λ‹€.

숌이 λ§Œλ“  N번째 μ˜ν™”μ˜ 제λͺ©μ— λ“€μ–΄κ°„ 숫자λ₯Ό 좜λ ₯ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€. μˆŒμ€ 이 μ‹œλ¦¬μ¦ˆλ₯Ό 항상 μ°¨λ‘€λŒ€λ‘œ λ§Œλ“€κ³ , λ‹€λ₯Έ μ˜ν™”λŠ” λ§Œλ“€μ§€ μ•ŠλŠ”λ‹€.

 

μž…λ ₯

첫째 쀄에 숫자 N이 주어진닀. N은 10,000보닀 μž‘κ±°λ‚˜ 같은 μžμ—°μˆ˜μ΄λ‹€.

 

좜λ ₯

첫째 쀄에 N번째 μ˜ν™”μ˜ 제λͺ©μ— λ“€μ–΄κ°„ 수λ₯Ό 좜λ ₯ν•œλ‹€.

 

μ •λ‹΅

N = int(input())
movie = []

for a in range(10000):
    if a % 1000 == 666:
        for i in range(1000):
            movie.append(a*1000+i)
    elif a % 100 == 66:
        for i in range(100):
            movie.append(a*1000+600+i)
    elif a % 10 == 6:
        for i in range(10):
            movie.append(a*1000+660+i)
    else:
        movie.append(a * 1000 + 666)

print(movie[N-1])

μž‘κ±°λ‚˜ μž…λ ₯받은 N은 μ΅œλŒ€ 10,000μ΄λ―€λ‘œ aλ₯Ό 10,000κΉŒμ§€ λ°˜λ³΅ν•˜λ©΄ μΆ©λΆ„ν•˜λ‹€.

μ—¬κΈ°μ„œ aλŠ” 1,000에 곱해쀄 숫자둜 4번째자리 μ΄μƒμ˜ μžλ¦¬μ— λ“€μ–΄κ°ˆ μˆ«μžμ΄λ‹€.

 

4, 5, 6번째자리 μˆ«μžκ°€ 666일 λ•Œ (a=666), λ‚˜λ¨Έμ§€ μˆ«μžλŠ” μ–΄λ–€ μˆ«μžκ°€ μ˜€λ“  상관없닀.

λ”°λΌμ„œ a*1000에 0λΆ€ν„° 999κΉŒμ§€ 더해쀀닀.

 

4, 5번째자리 μˆ«μžκ°€ 66일 λ•Œ(a=_66), 3번째 자리 μˆ«μžλ„ 6이 μ™€μ•Όν•œλ‹€.

λ”°λΌμ„œ a*1000에 600을 더해 3번쨰 자리 숫자λ₯Ό 6으둜 κ³ μ •ν•œ ν›„ 0λΆ€ν„° 99κΉŒμ§€ 더해 λ‚˜λ¨Έμ§€λ₯Ό μ±„μ›Œμ€€λ‹€.

 

4번째자리 μˆ«μžκ°€ 6μΌλ•Œ(a=__6), 2, 3번째 자리 μˆ«μžλ„ 6이 μ™€μ•Όν•œλ‹€.

λ”°λΌμ„œ a*1000에 660을 더해 2, 3번째 자리 숫자λ₯Ό 6으둜 κ³ μ •ν•œ ν›„ 0λΆ€ν„° 9κΉŒμ§€ 더해 λ‚˜λ¨Έμ§€λ₯Ό μ±„μ›Œμ€€λ‹€.

 

a의 λ§ˆμ§€λ§‰ μˆ«μžκ°€ 6이 μ•„λ‹ˆλΌλ©΄ 1,2,3번째 자리 μˆ«μžκ°€ 6μ΄μ–΄μ•Όν•œλ‹€.

λ”°λΌμ„œ a*1000에 666을 더해쀀닀.

 

728x90

BELATED ARTICLES

more