์ฝ๋ฉ ํ ์คํธ ์ฐ์ต - 2018 KAKAO BLIND RECRUITMENT
<[3์ฐจ] n์ง์ ๊ฒ์>
๋ฌธ์ ์ค๋ช
ํ๋ธ๊ฐ ํ๋ํ๋ ์ฝ๋ฉ ๋์๋ฆฌ์์๋ ์ ํต์ ์ผ๋ก ํด์ค๋ ๊ฒ์์ด ์๋ค.
์ด ๊ฒ์์ ์ฌ๋ฌ ์ฌ๋์ด ๋ฅ๊ธ๊ฒ ์์์ ์ซ์๋ฅผ ํ๋์ฉ ์ฐจ๋ก๋๋ก ๋งํ๋ ๊ฒ์์ธ๋ฐ, ๊ท์น์ ๋ค์๊ณผ ๊ฐ๋ค.
1. ์ซ์๋ฅผ 0๋ถํฐ ์์ํด์ ์ฐจ๋ก๋๋ก ๋งํ๋ค.
์ฒซ ๋ฒ์งธ ์ฌ๋์ 0, ๋ ๋ฒ์งธ ์ฌ๋์ 1, … ์ด ๋ฒ์งธ ์ฌ๋์ 9๋ฅผ ๋งํ๋ค.
2. 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 โฆ 160
0๏ผ t โฆ 1000
2 โฆ m โฆ 100
1 โฆ p โฆ m
์ถ๋ ฅํ์
ํ๋ธ๊ฐ ๋งํด์ผ ํ๋ ์ซ์ t๊ฐ๋ฅผ ๊ณต๋ฐฑ ์์ด ์ฐจ๋ก๋๋ก ๋ํ๋ธ ๋ฌธ์์ด.
๋จ, 10~15๋ ๊ฐ๊ฐ ๋๋ฌธ์ A~F๋ก ์ถ๋ ฅํ๋ค.
๋ฌธ์ ํ์ด
- my solution
def solution(n, t, m, p):
answer = ''
tempstr = '0'
i=1
dic={10:'A', 11:'B', 12:'C', 13:'D', 14:'E', 15:'F'} # 10~15๋ ๊ฐ๊ฐ ๋๋ฌธ์ A~F๋ก ์ถ๋ ฅ
# n์ง๋ฒ ๊ตฌํ๊ธฐ
while True:
temp = ''
k = i
while True:
x, y = divmod(k, n)
if y >= 10: # 10 ์ด์์ด๋ฉด A~F๋ก ์ถ๋ ฅ
temp += dic[y]
else: # ๋๋จธ์ง ๋ฌธ์์ด๋ก ์ถ๋ ฅ
temp += str(y)
k = x
if x <= 0: #๋
break
i+=1
tempstr+=temp[::-1] # ๋ค์ง์ด์ ์ถ๊ฐ
if len(tempstr)>=(t*m): # ์๋ฆฌ์๋งํผ
break
for i in range(len(tempstr)): # ์๊ธฐ ์ฐจ๋ก์ ๋งํ ์ซ์
if i%m==p-1:
answer+=tempstr[i]
if len(answer)==t:
break
return answer
์ง๋ฒ ๋ณํ!! ์ฐพ์๋ณด๋ divmod๋ก ๋ชซ๊ณผ ๋๋จธ์ง๋ฅผ ๊ตฌํด n์ง๋ฒ์ผ๋ก ํ๊ธธ๋...
divmod๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด๋ณด์๋ค.
1) ์ซ์ ๋ช๊น์ง n์ง๋ฒ์ผ๋ก ๊ตฌํ๋ ๋ง ๋์ ๊ธธ์ด๋ฅผ ์๋ ค์ฃผ์์ผ๋ฏ๋ก while ๋ฌธ์ ์ฌ์ฉ
1-1) ์ซ์ k๋ฅผ n์ง๋ฒ์ผ๋ก ๋ํ๋ด๊ธฐ ์ํด divmod๋ฅผ ์คํํด์ผ ํ๋ฏ๋ก while๋ฌธ ์ฌ์ฉ
โ 10 ์ด์์ด๋ฉด dic์ ๋ฏธ๋ฆฌ ์ ์ฅํด๋ ๊ฐ์ ๋ฌธ์์ด์ ๋ฃ๊ณ , 10๋ณด๋ค ์์ผ๋ฉด ๊ทธ ๊ฐ์ ๊ทธ๋๋ก ๋ฌธ์์ด์ ๋ฃ์
โก ์ข ๋ฃ ์กฐ๊ฑด: ๋ชซ์ด 0๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ๊ฒฝ์ฐ
1-2) ๋๋จธ์ง๋ก ๊ตฌํ n์ง๋ฒ์ ๋ค์ง์ด์ ์ถ๊ฐ
1-3) ์ข ๋ฃ ์กฐ๊ฑด: ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ (๋ฏธ๋ฆฌ ๊ตฌํ ์ซ์์ ๊ฐ์) * (๊ฒ์์ ์ฐธ๊ฐํ๋ ์ธ์) ์ด์์ผ ๊ฒฝ์ฐ
2) ์ซ์ k๋ฅผ n์ง๋ฒ์ผ๋ก ๋ณํํ ๋ฌธ์์ด์ ๋ฐ๋ณต๋ฌธ์ ํตํ์ฌ ์๊ธฐ ์ฐจ๋ก์ ๋งํ ์ซ์๋ง answer์ ์ถ๊ฐ
์๊ฐ๐ค
๋ด๊ฐ ์๊ฐํ๊ธฐ์ ์ด ๋ฌธ์ ์ ํฌ์ธํธ๋
1) ์ซ์ k๋ฅผ n์ง๋ฒ์ผ๋ก ๋ณํํ๋ ๋ฐฉ๋ฒ
2) ๋ฏธ๋ฆฌ ๊ตฌํ ์ซ์์ ๊ฐ์๋งํผ ๊ตฌํ๋ ๋ฐฉ๋ฒ
์ด์๋ ๊ฒ ๊ฐ๋ค.
์ถ์ฒ: ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉ ํ ์คํธ ์ฐ์ต, https://programmers.co.kr/learn/challenges
'๐Algorithm > ๐ฅprogrammers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[programmers] ๋ฒ ์คํธ์จ๋ฒ (0) | 2021.09.10 |
---|---|
[programmers] ๋ฐฉ๋ฌธ ๊ธธ์ด - Summer/Winter Coding(~2018) (0) | 2021.09.09 |
[programmers] ๊ดํธ ํ์ ํ๊ธฐ - ์๊ฐ ์ฝ๋ ์ฑ๋ฆฐ์ง ์์ฆ2 (0) | 2021.09.07 |
[programmers] ๊ดํธ ๋ณํ - 2020 KAKAO BLIND RECRUITMENT (0) | 2021.09.06 |
[programmers] [3์ฐจ] ํ์ผ๋ช ์ ๋ ฌ - 2018 KAKAO BLIND RECRUITMENT (0) | 2021.09.04 |