๐กsolutions )
๐ฌ convert ํจ์๋ฅผ ๊ตฌํํ์ฌ ์ง์ ๋ณํํ์์ -> ์ด๋ ์ฌ๊ทํจ์๋ก ๊ตฌํํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์๋ฐ ์ฌ๊ธฐ์ while ๋ฐ๋ณต๋ฌธ์ ํตํด ๊ตฌํํ์์ ์ด๋ k๊ฐ 0์ผ ๋๋ฅผ ๊ณ ๋ คํ๊ธฐ ์ํด res ๋ฌธ์์ด์ 0์ ์ด๊ธฐ๊ฐ์ผ๋ก ๋ฃ์ด์ฃผ๊ณ ์์ํ์์
๐จ๐ปcode )
def convert(k, n):
base = ''
remain = '0123456789ABCDEF'
while k > 0:
k, mod = divmod(k, n)
base += remain[mod]
base = base[::-1]
return base
def solution(n, t, m, p):
res = '0'
for i in range(t*m):
res += convert(i, n)
cnt = 0
answer = ''
for i in range(p-1, len(res),m):
cnt += 1
answer += res[i]
if cnt == t:
break
return answer
๐description )
ํ๋ธ๊ฐ ํ๋ํ๋ ์ฝ๋ฉ ๋์๋ฆฌ์์๋ ์ ํต์ ์ผ๋ก ํด์ค๋ ๊ฒ์์ด ์๋ค. ์ด ๊ฒ์์ ์ฌ๋ฌ ์ฌ๋์ด ๋ฅ๊ธ๊ฒ ์์์ ์ซ์๋ฅผ ํ๋์ฉ ์ฐจ๋ก๋๋ก ๋งํ๋ ๊ฒ์์ธ๋ฐ, ๊ท์น์ ๋ค์๊ณผ ๊ฐ๋ค.
- ์ซ์๋ฅผ 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๋ก ์ถ๋ ฅํ๋ค.
์ ์ถ๋ ฅ ์์
ntmpresult
2 | 4 | 2 | 1 | "0111" |
16 | 16 | 2 | 1 | "02468ACE11111111" |
16 | 16 | 2 | 2 | "13579BDF01234567" |