Skip to content

Commit 4904fa4

Browse files
authored
Merge pull request #36 from jjangsungwon/test
방금그곡
2 parents 28b76e9 + 053468c commit 4904fa4

File tree

1 file changed

+97
-0
lines changed

1 file changed

+97
-0
lines changed
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
def music_time(start, end): # 음악 재생시간
2+
start_h, start_m = map(int, start.split(":"))
3+
end_h, end_m = map(int, end.split(":"))
4+
return (end_h * 60 + end_m) - (start_h * 60 + start_m)
5+
6+
7+
def matching(data, music, play_time):
8+
# data, music을 '#"과 음을 붙인 형태로 만든다.
9+
data_list = []
10+
music_list = []
11+
if len(data) > 1:
12+
value = data[0]
13+
for i in range(1, len(data)):
14+
if data[i] == "#":
15+
value += data[i]
16+
else:
17+
data_list.append(value)
18+
value = data[i]
19+
if i == len(data) - 1:
20+
data_list.append(value)
21+
elif len(data) == 1:
22+
data_list = [data[0]]
23+
else:
24+
return False
25+
26+
if len(music) > 1:
27+
value = music[0]
28+
for i in range(1, len(music)):
29+
if music[i] == "#":
30+
value += music[i]
31+
else:
32+
music_list.append(value)
33+
value = music[i]
34+
if i == len(music) - 1:
35+
music_list.append(value)
36+
elif len(music) == 1:
37+
music_list = [music[0]]
38+
else:
39+
return False
40+
41+
data_set = set(data_list)
42+
music_set = set(music_list)
43+
44+
for index in data_set:
45+
if index not in music_set:
46+
return False
47+
48+
if len(data_list) > len(music):
49+
data_list = data_list[:len(music)]
50+
51+
# music 확장
52+
music = []
53+
index = 0
54+
cnt = 0
55+
while cnt < play_time:
56+
if index == len(music_list):
57+
index = 0
58+
music.append(music_list[index])
59+
index += 1
60+
cnt += 1
61+
62+
try:
63+
for i in range(len(music)):
64+
for j in range(i, i + len(data_list)):
65+
if music[j] == data_list[j - i]:
66+
if j == i + len(data_list) - 1:
67+
return True
68+
else:
69+
break
70+
except:
71+
return False
72+
73+
74+
def solution(m, musicinfos):
75+
answer = "(None)"
76+
max_time = -1
77+
78+
for i in range(len(musicinfos)): # 음악의 종류만큼 반복
79+
musicinfos[i] = str(musicinfos[i]).split(",")
80+
play_time = music_time(musicinfos[i][0], musicinfos[i][1]) # 재생 시간
81+
flag = matching(m, musicinfos[i][3], play_time)
82+
if answer is not None and play_time < max_time:
83+
continue
84+
elif flag:
85+
if max_time < play_time:
86+
max_time = play_time
87+
answer = musicinfos[i][2]
88+
89+
return answer
90+
91+
92+
if __name__ == "__main__":
93+
# print(solution("ABCDEFG", ["12:00,12:14,HELLO,CDEFGAB", "13:00,13:05,WORLD,ABCDEF"]))
94+
# print(solution("CC#BCC#BCC#BCC#B", ["03:00,03:30,FOO,CC#B", "04:00,04:08,BAR,CC#BCC#BCC#B"]))
95+
# print(solution("ABC", ["12:00,12:14,HELLO,C#DEFGAB", "13:00,13:05,WORLD,ABCDEF"]))
96+
# print(solution("CCB", ["03:00,03:10,FOO,CCB#CCB", "04:00,04:08,BAR,ABC"]))
97+
print(solution("A#", ["13:00,13:02,HAPPY,B#A#"]))

0 commit comments

Comments
 (0)