- 발행일
[99클럽] 99클럽 코테 스터디 9일차 TIL + 해시
[99클럽] 99클럽 코테 스터디 9일차 TIL + 해시
이 글은 네이버 블로그에 2025년 1월 23일에 올렸던 것을 그대로 옮겨온 것입니다.
오늘의 학습 키워드
공부한 내용 본인의 언어로 정리하기
오늘의 회고
어떤 문제가 있었고, 나는 어떤 시도를 했는지
어떻게 해결했는지
무엇을 새롭게 알았는지
내일 학습할 것은 무엇인지
비기너 전주 듣고 노래 맞히기 https://www.acmicpc.net/problem/31562
미들러 이분 그래프 https://www.acmicpc.net/problem/1707
챌린저 비슷한 단어 https://www.acmicpc.net/problem/2179
// 입력 처리 및 구현
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let input = [];
rl.on("line", (line) => {
input.push(line);
}).on("close", () => {
// 첫 번째 줄에서 N, M 추출
const [N, M] = input[0].split(" ").map(Number);
const songs = new Map();
// N개의 노래 정보 처리
for (let i = 1; i <= N; i++) {
const [T, title, ...notes] = input[i].split(" ");
const firstThreeNotes = notes.slice(0, 3).join("");
if (!songs.has(firstThreeNotes)) {
songs.set(firstThreeNotes, []);
}
songs.get(firstThreeNotes).push(title);
}
const results = [];
// M개의 시도 처리
for (let i = N + 1; i < N + 1 + M; i++) {
const attempt = input[i].split(" ").join("");
if (songs.has(attempt)) {
const matchedTitles = songs.get(attempt);
if (matchedTitles.length === 1) {
results.push(matchedTitles[0]);
} else {
results.push("?");
}
} else {
results.push("!");
}
}
// 결과 출력
console.log(results.join("\n"));
});
https://www.acmicpc.net/problem/31562
필수 해시태그: #99클럽 #코딩테스트준비 #개발자취업 #항해99 #TIL