2025. 1. 23. 19:56ㆍ코테 스터디(Python)
31562번 : 전주 듣고 노래 맞히기
풀이
1. 아는 노래 N개와 맞출 노래 M개를 정수로 받아온다.
N, M = map(int, input().split())
2. 노래를 받아 올 딕셔너리를 만든다.
song = {}
3. 노래 제목 길이 T , 노래 제목 S , 처음 등장하는 일곱 개의 음이름을 a1, a2, a3, a4, a5, a6, a7에 N번 반복하여 받아온다.
for _ in range(N):
T, S, a1, a2, a3, a4, a5, a6, a7 = input().split()
4. 첫 세 음만 필요하기 때문에 a1, a2, a3만 A라는 리스트에 포함시킨다. song 딕셔너리안에 S(노래 제목)를 키를 가진 A(value)를 넣어준다.
A = [a1, a2, a3]
song[S] = A
5. M번 반복하여 맞출 노래 첫 세음을 B값에 받아온다.
for _ in range(M):
B = input().split()
6. 맞춘 노래를 세기 위해 count라는 변수와 일치하는 노래 제목을 넣기 위한 title 변수를 만들어 준다.
count = 0
title = ""
7. song을 반복하여 B와 같은 값이 있을 경우 count 증가해준다.
for i in song:
if B == song[i]:
count += 1
title = i
8. 조건문을 통해 일치하는 노래가 2개 이상이면 "?" 를 출력하고 1개인 경우엔 노래제목을, 일치하는 게 없는 경우엔 "!" 를 출력한다.
if count >= 2:
print("?")
elif count == 1:
print(title)
else:
print("!")
제출코드
N, M = map(int, input().split())
song = {}
for _ in range(N):
T, S, a1, a2, a3, a4, a5, a6, a7 = input().split()
A = [a1, a2, a3]
song[S] = A
for _ in range(M):
B = input().split()
count = 0
title = ""
for i in song:
if B == song[i]:
count += 1
title = i
if count >= 2:
print("?")
elif count == 1:
print(title)
else:
print("!")
'코테 스터디(Python)' 카테고리의 다른 글
11일차 - 스택 ( 백준 10828번 ) (0) | 2025.02.03 |
---|---|
10일차 - 회상 ( 백준 - 32953번 ) (0) | 2025.01.24 |
8일차 - 아 맞다 마늘 ( 백준 32978번 ) (0) | 2025.01.22 |
7일차 - Hashing ( 백준 - 15829번 ) (0) | 2025.01.21 |
6일차 - 할리갈리 ( 백준 27160번 ) (0) | 2025.01.20 |