제목: 99클럽 코테 스터디 7일차 TIL + 오늘의 학습 키워드 : 해시
- 오늘의 학습 키워드 : 해시
백준 31562번 :전주 듣고 노래 맞추기
- 공부한 내용 본인의 언어로 정리하기
1. startswith()
: 문자열이 특정 문자열로 시작하는지 여부를 확인하는 메소드입니다. True 또는 False를 반환합니다.
사용예시
text = "Hello World"
print(text.startswith("Hello")) # True
print(text.startswith("World")) # False
2. 조건문 (if, elif, else)
: 조건에 따라 다른 코드를 실행할 수 있게 해주는 문법입니다.
사용예
score = 85
if score >= 90:
print("A")
elif score >= 80:
print("B")
else:
print("C")
3. 반복문 (for, while)
: 특정 조건이 만족할 때까지 코드를 반복 실행할 수 있게 해주는 문법입니다.
사용예시
for i in range(5):
print(i) # 0, 1, 2, 3, 4
4. 리스트 컴프리헨션
: 기존 리스트를 기반으로 새로운 리스트를 간결하게 생성하는 방법
사용예시
squares = [x**2 for x in range(10)] # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
- 오늘의 회고
- 어떤 문제가 있었고, 나는 어떤 시도를 했는지
# 정환이 아는 노래 갯수 N, 정환이 맞히기 시도 할 노래 갯수 M 입력
N, M = map(int, input().split())
# 정환이 만든 음계에 따른 노래 제목
music_dict = {}
# N개의 노래와 음계를 입력받아 딕셔너리에 저장
for _ in range(N):
scale, title = input().split()
music_dict[scale] = title
# M개의 시도할 음계 입력받기
attempts = [input().strip() for _ in range(M)]
# 결과를 저장할 리스트
results = []
# 각 시도에 대해 결과를 확인
for attempt in attempts:
count = 0
music_name = ""
# 음악 딕셔너리에서 음계 찾기
for scale, title in music_dict.items():
if scale.startswith(attempt):
count += 1
music_name = title
# 출력 규칙에 따라 결과 결정
if count == 1:
results.append(music_name)
elif count > 1:
results.append("?")
else:
results.append("!")
# 결과 출력
for result in results:
print(result)
- 어떻게 해결했는지
# 정환이 아는 노래 갯수 N, 정환이 맞히기 시도 할 노래 갯수 M 입력
N, M = map(int, input().split())
# 노래 제목과 음계를 저장할 리스트
music_dict = []
# N개의 노래 정보 입력받기
for _ in range(N):
data = input().split()
title = data[1] # 노래 제목
scale = ''.join(data[2:9]) # 처음 등장하는 7개의 음을 하나의 문자열로 결합
music_dict.append((title, scale))
# M개의 시도할 음계 입력받기
attempts = [input().strip().replace(' ', '') for _ in range(M)]
# 결과를 저장할 리스트
results = []
# 각 시도에 대해 결과 확인
for attempt in attempts:
count = 0
music_name = ""
# 음악 리스트에서 음계 찾기
for title, scale in music_dict:
if scale.startswith(attempt): # 첫 세 음이 시작하는지 확인
count += 1
music_name = title
# 출력 규칙에 따라 결과 결정
if count == 1:
results.append(music_name)
elif count > 1:
results.append("?")
else:
results.append("!")
# 결과 출력
for result in results:
print(result)
코드 설명:
1. 입력 부분:
첫 줄에서 정환이 아는 노래의 개수 N과 맞히기 시도 할 노래의 개수 M을 입력받습니다.
다음 N줄에서는 각 노래의 제목과 첫 7개 음계를 입력받아 리스트 music_dict에 저장합니다. 음계는 문자열로 결합하여 저장합니다.
2.시도 부분:
M개의 시도할 음계를 입력받아 리스트 attempts에 저장합니다. 각 시도는 공백을 제거하고 하나의 문자열로 처리합니다.
3. 결과 확인 및 출력:
각 시도에 대해 저장된 노래 리스트를 검사하고, 시작하는 음계가 일치하는 노래의 개수를 세어 count에 저장합니다.
조건에 맞추어 결과를 results 리스트에 추가한 후, 마지막에 모든 결과를 출력합니다.
- 무엇을 새롭게 알았는지
1. split()와 join()을 같이 비교하면서 사용법 더 익힐 것. 사용법이 딱 반대다.
- 내일 학습할 것은 무엇인지
코테 정리하면서,
회사 업무에 대해서 꼭 알아야 할 것들 학습 시작 예정
+ sqld 개발자 문제 풀이 시작
+ knou강의 1개씩 듣기
Any, TiL, 개발자취업, 백준, 백준27160번, 코딩테스트준비, 파이썬, 할리갈리, 항해99, 해시
출처: https://exit9509.tistory.com/261 [데브수달:티스토리]
99클럽 코테 스터디 9일차 TIL + 오늘의 학습 키워드 : 해시 (5) | 2024.11.05 |
---|---|
99클럽 코테 스터디 8일차 TIL + 오늘의 학습 키워드 : 해시 (3) | 2024.11.04 |
99클럽 코테 스터디 6일차 TIL + 오늘의 학습 키워드 : 해시 (4) | 2024.11.02 |
99클럽 코테 스터디 5일차 TIL + 오늘의 학습 키워드 : 해시 (0) | 2024.11.01 |
99클럽 코테 스터디 4일차 TIL + 오늘의 학습 키워드 : 문자열+해시 (2) | 2024.10.31 |