diff --git "a/Programmers/Level2/12981_\354\230\201\354\226\264_\353\201\235\353\247\220\354\236\207\352\270\260.js" "b/Programmers/Level2/12981_\354\230\201\354\226\264_\353\201\235\353\247\220\354\236\207\352\270\260.js" new file mode 100644 index 0000000..c0de2c9 --- /dev/null +++ "b/Programmers/Level2/12981_\354\230\201\354\226\264_\353\201\235\353\247\220\354\236\207\352\270\260.js" @@ -0,0 +1,24 @@ +/* +⭐️ 문제 정보 ⭐️ +문제 : 12981 - 영어 끝말잇기 +레벨 : Level 2 +링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12981 +*/ + +// ANCHOR - 2025.12.05 풀이 +function solution(n, words) { + const wordSet = new Set(); + wordSet.add(words[0]); + + for (let cur = 1; cur < words.length; cur++) { + if (wordSet.has(words[cur]) || words[cur - 1].at(-1) !== words[cur].at(0)) { + const loser = (cur % n) + 1; + const round = parseInt(cur / n) + 1; + return [loser, round]; + } else { + wordSet.add(words[cur]); + } + } + + return [0, 0]; +} diff --git "a/Programmers/Level2/42577_\354\240\204\355\231\224\353\262\210\355\230\270_\353\252\251\353\241\235.js" "b/Programmers/Level2/42577_\354\240\204\355\231\224\353\262\210\355\230\270_\353\252\251\353\241\235.js" new file mode 100644 index 0000000..b20c774 --- /dev/null +++ "b/Programmers/Level2/42577_\354\240\204\355\231\224\353\262\210\355\230\270_\353\252\251\353\241\235.js" @@ -0,0 +1,25 @@ +/* +⭐️ 문제 정보 ⭐️ +문제 : 42577 - 전화번호 목록 +레벨 : Level 2 +링크 : https://school.programmers.co.kr/learn/courses/30/lessons/42577 +*/ + +// ANCHOR - 2025.12.05 풀이 +function solution(phone_book) { + const numberSet = new Set(); + for (const number of phone_book) { + // 같은 전화번호가 중복해서 들어있지 않으므로 끝번호를 제외한 부분문자열만 구해준다. + for (let len = 1; len < number.length; len++) { + numberSet.add(number.substr(0, len)); + } + } + + for (const number of phone_book) { + if (numberSet.has(number)) { + return false; + } + } + + return true; +} diff --git a/Programmers/README.md b/Programmers/README.md index 1864b6a..31cb66d 100644 --- a/Programmers/README.md +++ b/Programmers/README.md @@ -17,6 +17,7 @@ | 12941 | 최솟값 만들기 | [12941_최솟값_만들기.js](Level2/12941_최솟값_만들기.js) | [🔗](https://school.programmers.co.kr/learn/courses/30/lessons/12941) | | 12949 | 행렬의 곱셈 | [12949_행렬의_곱셈.js](Level2/12949_행렬의_곱셈.js) | [🔗](https://school.programmers.co.kr/learn/courses/30/lessons/12949) | | 12973 | 짝지어 제거하기 | [12973_짝지어_제거하기.js](Level2/12973_짝지어_제거하기.js) | [🔗](https://school.programmers.co.kr/learn/courses/30/lessons/12973) | +| 12981 | 영어 끝말잇기 | [12981_영어_끝말잇기.js](Level2/12981_영어_끝말잇기.js) | [🔗](https://school.programmers.co.kr/learn/courses/30/lessons/12981) | | 12985 | 예상 대진표 | [12985_예상_대진표.js](Level2/12985_예상_대진표.js) | [🔗](https://school.programmers.co.kr/learn/courses/30/lessons/12985) | | 12987 | 숫자 게임 | [12987_숫자_게임.js](Level3/12987_숫자_게임.js) | [🔗](https://school.programmers.co.kr/learn/courses/30/lessons/12987) | | 17677 | [1차] 뉴스 클러스터링 | [17677_[1차]_뉴스_클러스터링.js](Level2/17677_[1차]_뉴스_클러스터링.js) | [🔗](https://school.programmers.co.kr/learn/courses/30/lessons/17677) | @@ -26,6 +27,7 @@ | 17686 | [3차] 파일명 정렬 | [17686_[3차]_파일명_정렬.js](Level2/17686_[3차]_파일명_정렬.js) | [🔗](https://school.programmers.co.kr/learn/courses/30/lessons/17686) | | 17687 | n진수 게임 | [17687_n진수_게임.js](Level2/17687_n진수_게임.js) | [🔗](https://school.programmers.co.kr/learn/courses/30/lessons/17687) | | 42576 | 완주하지 못한 선수 | [42576_완주하지_못한_선수.js](Level1/42576_완주하지_못한_선수.js) | [🔗](https://school.programmers.co.kr/learn/courses/30/lessons/42576) | +| 42577 | 전화번호 목록 | [42577_전화번호_목록.js](Level2/42577_전화번호_목록.js) | [🔗](https://school.programmers.co.kr/learn/courses/30/lessons/42577) | | 42578 | 의상 | [42578_의상.js](Level2/42578_의상.js) | [🔗](https://school.programmers.co.kr/learn/courses/30/lessons/42578) | | 42579 | 베스트앨범 | [42579_베스트앨범.js](Level3/42579_베스트앨범.js) | [🔗](https://school.programmers.co.kr/learn/courses/30/lessons/42579) | | 42583 | 다리를 지나는 트럭 | [42583_다리를_지나는_트럭.js](Level2/42583_다리를_지나는_트럭.js) | [🔗](https://school.programmers.co.kr/learn/courses/30/lessons/42583) |