์ฝ๋ฉ ํ ์คํธ ์ฐ์ต - 2018 KAKAO BLIND RECRUITMENT
<[3์ฐจ] ๋ฐฉ๊ธ ๊ทธ ๊ณก>
๋ฌธ์ ์ค๋ช
๋ผ๋์ค๋ฅผ ์์ฃผ ๋ฃ๋ ๋ค์ค๋ ๋ผ๋์ค์์ ๋ฐฉ๊ธ ๋์๋ ์์ ์ด ๋ฌด์จ ์์ ์ธ์ง ๊ถ๊ธํด์ง ๋๊ฐ ๋ง๋ค. ๊ทธ๋ด ๋ ๋ค์ค๋ ๋ค์ ํฌํธ์ '๋ฐฉ๊ธ ๊ทธ ๊ณก' ์๋น์ค๋ฅผ ์ด์ฉํ๊ณค ํ๋ค. ๋ฐฉ๊ธ ๊ทธ ๊ณก์์๋ TV, ๋ผ๋์ค ๋ฑ์์ ๋์จ ์์ ์ ๊ดํด ์ ๋ชฉ ๋ฑ์ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ์๋น์ค์ด๋ค.
๋ค์ค๋ ์์ ์ด ๊ธฐ์ตํ ๋ฉ๋ก๋๋ฅผ ๊ฐ์ง๊ณ ๋ฐฉ๊ธ ๊ทธ ๊ณก์ ์ด์ฉํด ์์ ์ ์ฐพ๋๋ค. ๊ทธ๋ฐ๋ฐ ๋ผ๋์ค ๋ฐฉ์ก์์๋ ํ ์์ ์ ๋ฐ๋ณตํด์ ์ฌ์ํ ๋๋ ์์ด์ ๋ค์ค๊ฐ ๊ธฐ์ตํ๊ณ ์๋ ๋ฉ๋ก๋๋ ์์ ๋๋ถ๋ถ๊ณผ ์ฒ์ ๋ถ๋ถ์ด ์ด์ด์ ์ฌ์๋ ๋ฉ๋ก๋์ผ ์๋ ์๋ค. ๋ฐ๋๋ก, ํ ์์ ์ ์ค๊ฐ์ ๋์ ๊ฒฝ์ฐ ์๋ณธ ์์ ์๋ ๋ค์ค๊ฐ ๊ธฐ์ตํ ๋ฉ๋ก๋๊ฐ ๋ค์ด์๋ค ํด๋ ๊ทธ ๊ณก์ด ๋ค์ค๊ฐ ๋ค์ ๊ณก์ด ์๋ ์๋ ์๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋ค์ค๋ ๊ธฐ์ตํ ๋ฉ๋ก๋๋ฅผ ์ฌ์ ์๊ฐ๊ณผ ์ ๊ณต๋ ์ ๋ณด๋ฅผ ์ง์ ๋ณด๋ฉด์ ๋น๊ตํ๋ ค๊ณ ํ๋ค. ๋ค์๊ณผ ๊ฐ์ ๊ฐ์ ์ ํ ๋ ๋ค์ค๊ฐ ์ฐพ์ผ๋ ค๋ ์์ ์ ์ ๋ชฉ์ ๊ตฌํ์ฌ๋ผ.
- ๋ฐฉ๊ธ ๊ทธ ๊ณก ์๋น์ค์์๋ ์์ ์ ๋ชฉ, ์ฌ์์ด ์์๋๊ณ ๋๋ ์๊ฐ, ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ค.
- ๋ค์ค๊ฐ ๊ธฐ์ตํ ๋ฉ๋ก๋์ ์ ๋ณด์ ์ฌ์ฉ๋๋ ์์ C, C#, D, D#, E, F, F#, G, G#, A, A#, B 12๊ฐ์ด๋ค.
- ๊ฐ ์์ 1๋ถ์ 1๊ฐ์ฉ ์ฌ์๋๋ค. ์์ ์ ๋ฐ๋์ ์ฒ์๋ถํฐ ์ฌ์๋๋ฉฐ ์์ ๊ธธ์ด๋ณด๋ค ์ฌ์๋ ์๊ฐ์ด ๊ธธ ๋๋ ์์ ์ด ๋๊น ์์ด ์ฒ์๋ถํฐ ๋ฐ๋ณตํด์ ์ฌ์๋๋ค. ์์ ๊ธธ์ด๋ณด๋ค ์ฌ์๋ ์๊ฐ์ด ์งง์ ๋๋ ์ฒ์๋ถํฐ ์ฌ์ ์๊ฐ๋งํผ๋ง ์ฌ์๋๋ค.
- ์์ ์ด 00:00์ ๋๊ฒจ์๊น์ง ์ฌ์๋๋ ์ผ์ ์๋ค.
- ์กฐ๊ฑด์ด ์ผ์นํ๋ ์์ ์ด ์ฌ๋ฌ ๊ฐ์ผ ๋์๋ ๋ผ๋์ค์์ ์ฌ์๋ ์๊ฐ์ด ์ ์ผ ๊ธด ์์ ์ ๋ชฉ์ ๋ฐํํ๋ค. ์ฌ์๋ ์๊ฐ๋ ๊ฐ์ ๊ฒฝ์ฐ ๋จผ์ ์ ๋ ฅ๋ ์์ ์ ๋ชฉ์ ๋ฐํํ๋ค.
- ์กฐ๊ฑด์ด ์ผ์นํ๋ ์์ ์ด ์์ ๋์๋ “(None)”์ ๋ฐํํ๋ค.
์ ๋ ฅ ํ์
์ ๋ ฅ์ผ๋ก ๋ค์ค๊ฐ ๊ธฐ์ตํ ๋ฉ๋ก๋๋ฅผ ๋ด์ ๋ฌธ์์ด m๊ณผ ๋ฐฉ์ก๋ ๊ณก์ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ ๋ฐฐ์ด musicinfos๊ฐ ์ฃผ์ด์ง๋ค.
- m์ ์ 1๊ฐ ์ด์ 1439๊ฐ ์ดํ๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
- musicinfos๋ 100๊ฐ ์ดํ์ ๊ณก ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ ๋ฐฐ์ด๋ก, ๊ฐ๊ฐ์ ๊ณก ์ ๋ณด๋ ์์ ์ด ์์ํ ์๊ฐ, ๋๋ ์๊ฐ, ์์ ์ ๋ชฉ, ์ ๋ณด ์ ๋ณด๊ฐ ', '๋ก ๊ตฌ๋ถ๋ ๋ฌธ์์ด์ด๋ค.
- ์์ ์ ์์ ์๊ฐ๊ณผ ๋๋ ์๊ฐ์ 24์๊ฐ HH:MM ํ์์ด๋ค.
- ์์ ์ ๋ชฉ์ ', ' ์ด์ธ์ ์ถ๋ ฅ ๊ฐ๋ฅํ ๋ฌธ์๋ก ํํ๋ ๊ธธ์ด 1 ์ด์ 64 ์ดํ์ ๋ฌธ์์ด์ด๋ค.
- ์ ๋ณด ์ ๋ณด๋ ์ 1๊ฐ ์ด์ 1439๊ฐ ์ดํ๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
์ถ๋ ฅ ํ์
์กฐ๊ฑด๊ณผ ์ผ์นํ๋ ์์ ์ ๋ชฉ์ ์ถ๋ ฅํ๋ค.
๋ฌธ์ ํ์ด
- my solution
def solution(m, musicinfos):
answer = ''
arr=[]
for i in musicinfos:
temp=i.split(',')
start=temp[0].split(':') # ์์
์์ ์๊ฐ
end=temp[1].split(':') # ์์
๋๋ ์๊ฐ
min=(int(end[0])-int(start[0]))*60 + int(end[1])-int(start[1]) # ์์
์ฌ์ ์๊ฐ
result=''
for j in range(len(temp[3])): # ,์ ๊ณต๋ฐฑ์ผ๋ก ์
๋ณด ๊ตฌ๋ถ
if j!=len(temp[3])-1 and temp[3][j+1]!='#':
result+=temp[3][j]+', '
else:
if j==len(temp[3])-1:
result+=temp[3][j]+','
else:
result+=temp[3][j]
k=result.split(' ')
music=(min//len(k))*k + k[:(min%len(k))] # ์ฌ์ ์๊ฐ ๋งํผ ์
๋ณด ๊ทธ๋ฆฌ๊ธฐ
music=' '.join(music)
arr.append([min,temp[2],music]) # list: ์ฌ์ ์๊ฐ, ์์
์ ๋ชฉ, ์
๋ณด
result=''
for i in range(len(m)): # ,์ ๊ณต๋ฐฑ์ผ๋ก ์์ ์ด ๊ธฐ์ตํ๋ ๋ฉ๋ก๋ ๊ตฌ๋ถ
if i!=len(m)-1 and m[i+1]!='#':
result+=m[i]+', '
else:
result+=m[i]
result+=','
mmax=-1
for i in arr: # ์กฐ๊ฑด๊ณผ ์ผ์นํ๋ ์์
์ ๋ชฉ ์ฐพ๊ธฐ
if result in i[2]:
if mmax<i[0]:
mmax=i[0]
answer=i[1]
if answer=='': # ์กฐ๊ฑด์ด ์ผ์นํ๋ ์์
์ด ์๋ ๊ฒฝ์ฐ
answer='(None)'
return answer
1) ๊ณก์ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ ๋ฐฐ์ด ํ์ : (์ฌ์ ์๊ฐ = ์์ ๋๋ ์๊ฐ - ์์ ์์ ์๊ฐ), (์ฌ์ ์๊ฐ๋งํผ ์ ๋ณด ๊ตฌํ๊ธฐ)
- list์ (์ฌ์ ์๊ฐ, ์์ ์ ๋ชฉ, ์ฌ์ ์๊ฐ๋งํผ์ ์ ๋ณด) ์ถ๊ฐ
2) ์์ ์ด ๊ธฐ์ตํ๋ ๋ฉ๋ก๋ ', '์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ
3) ์กฐ๊ฑด๊ณผ ์ผ์นํ๋ ์์ ์ ๋ชฉ ์ฐพ๊ธฐ : ์กฐ๊ฑด ์ผ์นํ๋ ๊ฒฝ์ฐ ์ฌ์์๊ฐ์ด ๊ธด ์์ , ๋จผ์ ์ ๋ ฅ๋ ์์ ์
4) ์กฐ๊ฑด๊ณผ ์ผ์นํ๋ ์์ ์ด ์์ผ๋ฉด '(None)' ์ถ๋ ฅ
์๊ฐ๐ค
์ด ๋ฌธ์ ์์ ์กฐ๊ธ ์๊ฐํด์ผ ํ๋ ๋ถ๋ถ์ ์ ๋ณด์์ #์ด ๋ถ์ ๊ฒฝ์ฐ์๋ค.
์ด๋ป๊ฒ ์ฝ๋๋ฅผ ์ ๊ตฌํํ ์ ์์๊น ๊ณ ๋ฏผํ๋ค๊ฐ ์ ์ผ ์ฌ์ด ๋ฐฉ๋ฒ์ธ ', '์ ๊ณต๋ฐฑ์ ์ฌ์ฉํด์ ๊ตฌ๋ถํ์๋ ์๊ฐ์ด ๋ค์๋ค.
์ด์ ์์ ์๊ฐํด๋ณด๋ฉด ๊ณต๋ฐฑ๋ง์ผ๋ก๋ ๊ตฌ๋ถํ ์ ์์์ ํ ๋ฐ, ์ ', '๊น์ง ํ๋๊ฐ...
๋ฌธ์ ๋ฅผ ํ ๋น์ ', '๋ฅผ ๋ฃ๊ณ in์ผ๋ก ์กฐ๊ฑด๊ณผ ์ผ์นํ๋์ง ๊ตฌ๋ถํ๋ ๋น์ฐํ #์ ๊ตฌ๋ถํ์ง ๋ชปํด ์ ๋๋ก ๋ ๊ฐ์ด ๋์ค์ง ์์๋ค.
๊ณต๋ฐฑ์ ๋ฃ๋๋ค๋ฉด 'C '์ 'C# '์ด ๋ค๋ฅด๊ฒ ๋ฐ์๋ค์ฌ์ง์ง ์๊ฒ ๋๊ฐ ํด์ ์๋ ์ฝ๋์ ๊ณต๋ฐฑ์ ์ถ๊ฐ๋ก ๋ฃ์ด์ฃผ์๋ค.
์๊ฐ ์ด๊ณผ๊ฐ ๋์ง ์์๊น ์ด์ง ๋ฌด์ญ๊ธฐ๋ ํ์ง๋ง ๋คํํ ํต๊ณผํ ์ ์์๋ค.
์ถ์ฒ: ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉ ํ ์คํธ ์ฐ์ต, https://programmers.co.kr/learn/challenges
'๐Algorithm > ๐ฅprogrammers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[programmers] SELECT๋ฌธ - SQL ๊ณ ๋์ Kit (0) | 2022.01.12 |
---|---|
[programmers] ๊ฐ์ฅ ๊ธด ํฐ๋ฆฐ๋๋กฌ - ์ฐ์ต๋ฌธ์ (0) | 2021.12.03 |
[programmers] ํผ๋ก๋ - ์ํด๋ฆฌ ์ฑ๋ฆฐ์ง (0) | 2021.12.01 |
[programmers] 124 ๋๋ผ์ ์ซ์ (0) | 2021.12.01 |
[programmers] ๋ก๋์ ์ต๊ณ ์์์ ์ต์ ์์ - 2021 Dev-Matching: ์น ๋ฐฑ์๋ ๊ฐ๋ฐ์ (0) | 2021.11.24 |