코딩테스트 연습 - [3차] 방금그곡
방금그곡 라디오를 자주 듣는 네오는 라디오에서 방금 나왔던 음악이 무슨 음악인지 궁금해질 때가 많다. 그럴 때 네오는 다음 포털의 '방금그곡' 서비스를 이용하곤 한다. 방금그곡에서는 TV, ��
programmers.co.kr
노트에 순서를 차근차근 적으면서 풀었다. 신경써줘야할게 꽤 있는 문제였다. 처음에 음이 12개라는것만 보고 #처리를 따로 해줘야한다는 것을 빼먹어서 시간이 더 걸린 것 같다. 그리고 이상하게 테스트케이스 3개가 통과가 안됐는데 알고보니 나는 '(None)' 을 반환하는 줄 알고 자꾸 '(None)'을 적고 있었다....
이 문제도 파이썬을 풀지 않았다면 머리가 더 복잡했을듯...
내 풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
def solution(m,musicinfos):
playList = []
target = ["C#","D#","F#","G#","A#"]
replace = ["Z","Y","X","V","N"]
for i in range(len(target)):
m = m.replace(target[i],replace[i])
def getPlayTime(start,end):
starthour = int(start[:start.index(":")])
startmin = int(start[start.index(":")+1:])
endhour = int(end[:end.index(":")])
endmin = int(end[end.index(":")+1:])
starthour*=60
endhour*=60
start = starthour+startmin
end = endhour+endmin
return end - start
for s in musicinfos:
data = s.split(",")
for i in range(len(target)):
data[3] = data[3].replace(target[i],replace[i])
temp = ""
playtime = getPlayTime(data[0],data[1])
print(playtime)
if(len(m)<= playtime):
for i in range(playtime):
temp+=data[3][i%len(data[3])]
tempLst = []
if m in temp:
tempLst.append(len(temp))
tempLst.append(int(data[0][:2]+data[0][3:]))
tempLst.append(data[2])
if tempLst:
playList.append(tempLst)
if len(playList) == 0:
return "(None)"
playList = sorted(playList,key=lambda x: (-x[0],x[1]))
return playList[0][2]
|
cs |
'IT > 알고리즘' 카테고리의 다른 글
[파이썬]코딩테스트를 위한 파이썬 자료형 (0) | 2020.09.19 |
---|---|
[Leetcode]819. Most Common Word (0) | 2020.09.18 |
프로그래머스 N개의 최소공배수 (0) | 2020.07.04 |
프로그래머스 피보나치 수 (python) (0) | 2020.06.24 |
프로그래머스 행렬의 곱셈 (0) | 2020.06.17 |