โ๋ฌธ์
https://school.programmers.co.kr/learn/courses/30/lessons/17687
ํ๋ก๊ทธ๋๋จธ์ค
SW๊ฐ๋ฐ์๋ฅผ ์ํ ํ๊ฐ, ๊ต์ก์ Total Solution์ ์ ๊ณตํ๋ ๊ฐ๋ฐ์ ์ฑ์ฅ์ ์ํ ๋ฒ ์ด์ค์บ ํ
programmers.co.kr
๋ฉ๋ชจ๋ฆฌ: 9.34 MB, ์๊ฐ: 23.54 ms
ํ๋ธ๊ฐ ํ๋ํ๋ ์ฝ๋ฉ ๋์๋ฆฌ์์๋ ์ ํต์ ์ผ๋ก ํด์ค๋ ๊ฒ์์ด ์๋ค. ์ด ๊ฒ์์ ์ฌ๋ฌ ์ฌ๋์ด ๋ฅ๊ธ๊ฒ ์์์ ์ซ์๋ฅผ ํ๋์ฉ ์ฐจ๋ก๋๋ก ๋งํ๋ ๊ฒ์์ธ๋ฐ, ๊ท์น์ ๋ค์๊ณผ ๊ฐ๋ค.
- ์ซ์๋ฅผ 0๋ถํฐ ์์ํด์ ์ฐจ๋ก๋๋ก ๋งํ๋ค. ์ฒซ ๋ฒ์งธ ์ฌ๋์ 0, ๋ ๋ฒ์งธ ์ฌ๋์ 1, … ์ด ๋ฒ์งธ ์ฌ๋์ 9๋ฅผ ๋งํ๋ค.
- 10 ์ด์์ ์ซ์๋ถํฐ๋ ํ ์๋ฆฌ์ฉ ๋์ด์ ๋งํ๋ค. ์ฆ ์ดํ ๋ฒ์งธ ์ฌ๋์ 10์ ์ฒซ ์๋ฆฌ์ธ 1, ์ด๋ ๋ฒ์งธ ์ฌ๋์ ๋์งธ ์๋ฆฌ์ธ 0์ ๋งํ๋ค.
์ด๋ ๊ฒ ๊ฒ์์ ์งํํ ๊ฒฝ์ฐ,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, …
์์ผ๋ก ์ซ์๋ฅผ ๋งํ๋ฉด ๋๋ค.
ํํธ ์ฝ๋ฉ ๋์๋ฆฌ ์ผ์๋ค์ ์ปดํจํฐ๋ฅผ ๋ค๋ฃจ๋ ์ฌ๋๋ต๊ฒ ์ด์ง์๋ก ์ด ๊ฒ์์ ์งํํ๊ธฐ๋ ํ๋๋ฐ, ์ด ๊ฒฝ์ฐ์๋
0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, …
์์ผ๋ก ์ซ์๋ฅผ ๋งํ๋ฉด ๋๋ค.
์ด์ง์๋ก ์งํํ๋ ๊ฒ์์ ์ต์ํด์ ธ ์ง๋ ค๊ฐ๋ ์ฌ๋๋ค์ ์ข ๋ ๋์ด๋๋ฅผ ๋์ด๊ธฐ ์ํด ์ด์ง๋ฒ์์ ์ญ์ก์ง๋ฒ๊น์ง ๋ชจ๋ ์ง๋ฒ์ผ๋ก ๊ฒ์์ ์งํํด๋ณด๊ธฐ๋ก ํ๋ค. ์ซ์ ๊ฒ์์ด ์ต์ํ์ง ์์ ํ๋ธ๋ ๊ฒ์์ ์ ธ์ ๋ฒ์น์ ๋ฐ๋ ๊ตด์์ ํผํ๊ธฐ ์ํด, ์์ ์ด ๋งํด์ผ ํ๋ ์ซ์๋ฅผ ์ค๋งํธํฐ์ ๋ฏธ๋ฆฌ ์ถ๋ ฅํด์ฃผ๋ ํ๋ก๊ทธ๋จ์ ๋ง๋ค๋ ค๊ณ ํ๋ค. ํ๋ธ์ ํ๋ก๊ทธ๋จ์ ๊ตฌํํ๋ผ.
์ง๋ฒ n, ๋ฏธ๋ฆฌ ๊ตฌํ ์ซ์์ ๊ฐฏ์ t, ๊ฒ์์ ์ฐธ๊ฐํ๋ ์ธ์ m, ํ๋ธ์ ์์ p ๊ฐ ์ฃผ์ด์ง๋ค.
- 2 โฆ n โฆ 16
- 0 ๏ผ t โฆ 1000
- 2 โฆ m โฆ 100
- 1 โฆ p โฆ m
ํ๋ธ๊ฐ ๋งํด์ผ ํ๋ ์ซ์ t๊ฐ๋ฅผ ๊ณต๋ฐฑ ์์ด ์ฐจ๋ก๋๋ก ๋ํ๋ธ ๋ฌธ์์ด. ๋จ, 10~15๋ ๊ฐ๊ฐ ๋๋ฌธ์ A~F๋ก ์ถ๋ ฅํ๋ค.
โ๐ปํ์ด
t๊ฐ๋ฅผ ๋ฏธ๋ฆฌ ๊ตฌํ๋ค๊ณ ํ๋ค. ๊ทธ๋ฌ๋ฏ๋ก ๋ฐ๋ณต๋ฌธ์ answer์ ๊ธธ์ด๊ฐ t*m๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ผ๋ฉด ๋ฉ์ถ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐ๋ณต๋ฌธ์ ์ํํ๋ฉฐ ์ฃผ์ด์ง๋ ์๋ฅผ N์ง์๋ก ๋ฐ๊พผ๋ค. ์ด๋ ๋ฐ๊พผ ๋ฌธ์์ด์ ์ญ์์ผ๋ก ๋ฐํํด์ผ ํ๋ค.
์ดํ t*m ์ด์์ ๊ธธ์ด๋ฅผ ๊ฐ๋ answer์์ ํ๋ธ๊ฐ ๋งํด์ผ ํ๋ t๊ฐ๋ฅผ ๋ฐํํ๋ค. p๊ฐ ํ๋ธ์ ์์๋ก ์ธ๋ฑ์ค๋ 0๋ถํฐ ์์ํ๊ธฐ ๋๋ฌธ์ p-1์์ ์์ํ๋ค. ๊ทธ๋ฆฌ๊ณ ํ์ฌ ๊ฒ์์ ์ฐธ์ฌํ๋ ์ธ์์ m๋ช ์ด๋ฏ๋ก ๋ฏธ๋ฆฌ ๊ตฌํด์ผ ํ ์ซ์ t * m๊น์ง step์ m์ผ๋ก ํ๋ฉฐ answer๋ฅผ ๋ฐํํ๋ฉด ๋๋ค.
๐ป์ฝ๋
dic = dict(zip(range(0, 16), '0123456789ABCDEF'))
def trans(a, n):
num = ''
if a == 0:
return '0'
while a:
num += dic[a%n]
a //= n
return num[::-1]
def solution(n, t, m, p):
answer = ''
for i in range(n**m+1):
if len(answer) >= t*m:
break
answer += trans(i, n)
return answer[p-1:t*m:m]
๐ํ๊ธฐ

์๊ฐ์ ์ค์ฌ๋ณด๋ ค๊ณ ์ฝ๋๋ฅผ ๋ง ์ค์ด๊ณ ํ๋๋ฐ ์คํ๋ ค ์๊ฐ์ด ๋์ด๋๋ ๋๋ผ์ด ๋งค์ง...
'Coding Test > Algorithms' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [ํ๋ก๊ทธ๋๋จธ์ค] ํํ/Python - Lv.2 (0) | 2025.10.07 |
|---|---|
| [ํ๋ก๊ทธ๋๋จธ์ค] [1์ฐจ] ๋ด์ค ํด๋ฌ์คํฐ๋ง/Python - Lv.2 (0) | 2025.10.02 |
| [ํ๋ก๊ทธ๋๋จธ์ค] [1์ฐจ] ๋น๋ฐ์ง๋/Python - Lv.1 (0) | 2025.10.01 |
| [๋ฐฑ์ค] 2075. N๋ฒ์งธ ํฐ ์/Python - Silver3 (0) | 2025.09.23 |
| [๋ฐฑ์ค] 20040. ์ฌ์ดํด ๊ฒ์/Python - Gold4 (0) | 2025.09.10 |