HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
👻
개발 기록
/
코딩테스트 스터디
코딩테스트 스터디
/
모음 사전

모음 사전

Link
https://school.programmers.co.kr/learn/courses/30/lessons/84512
Deadline
Sep 25, 2022
Status
Archived
Type
Brute Force

문제

notion image
notion image
 

풀이

재영
const solution = (word) => { const target = word.split(""); const words = ["A","E","I","O","U"]; const nextIndices = { "A": 1, "E": 2, "I": 3, "O": 4, "U": 0 } let now = ["A"]; let cnt = 1; while (word !== now.join("")) { cnt += 1; let lastWord = now[now.length - 1]; if (now.length < 5) { now.push("A") } else { while (lastWord === "U") { now.pop(); lastWord = now[now.length - 1]; } now.pop(); now.push(words[nextIndices[lastWord]]) } if (target.join("") === now.join("")) { break; } } return cnt }
현석
const weights = { 'A': 0, 'E': 1, 'I': 2, "O": 3, 'U': 4 } function solution(word) { return [...word].map((char, index) => { let result = 0 for (let i = 4 - index; i >= 0; i--) { result += (5 ** i) } return weights[char] * result + 1 }).reduce((a,b) => a + b, 0) }
const weights = { 'A': 0, 'E': 1, 'I': 2, "O": 3, 'U': 4 } function solution(word) { return [...word].map((char, index) => weights[char] * ((5 ** (5 - index) - 1) / 4) + 1 ).reduce((a,b) => a + b, 0) }
효성
function solution(word) { const words = gererateAllWords(); return words.indexOf(word) + 1; } function gererateAllWords() { const letters = ['A', 'E', 'I', 'O', 'U']; const LEN = letters.length; const words = []; for(let i = 0; i < LEN; i++) { words.push(letters[i]); for(let j = 0; j < LEN; j++) { words.push(letters[i] + letters[j]); for(let k = 0; k < LEN; k++) { words.push(letters[i] + letters[j] + letters[k]); for(let l = 0; l < LEN; l++) { words.push(letters[i] + letters[j] + letters[k] + letters[l]); for(let m = 0; m < LEN; m++) { words.push(letters[i] + letters[j] + letters[k] + letters[l] + letters[m]); } } } } } return words; }
function solution(word) { const words = gererateAllWords(); let w = 0; for(let i = 0; i < word.length; i++) { w += weights[word[i]] * Math.pow(10, 4 - i); } return words.indexOf(w) + 1; } const weights = { 'A': 1, 'E': 2, 'I': 3, "O": 4, 'U': 5 } function gererateAllWords() { const letters = ['A', 'E', 'I', 'O', 'U']; const LEN = letters.length; const words = []; let curW = 0; for(let i = 0; i < LEN; i++) { curW += (weights[letters[i]] * Math.pow(10, 4)); words.push(curW); for(let j = 0; j < LEN; j++) { curW += (weights[letters[j]] * Math.pow(10, 3)); words.push(curW); for(let k = 0; k < LEN; k++) { curW += (weights[letters[k]] * Math.pow(10, 2)); words.push(curW); for(let l = 0; l < LEN; l++) { curW += (weights[letters[l]] * Math.pow(10, 1)); words.push(curW); for(let m = 0; m < LEN; m++) { curW += weights[letters[m]]; words.push(curW); curW -= weights[letters[m]]; } curW -= (weights[letters[l]] * Math.pow(10, 1)); } curW -= (weights[letters[k]] * Math.pow(10, 2)); } curW -= (weights[letters[j]] * Math.pow(10, 3)); } curW -= (weights[letters[i]] * Math.pow(10, 4)); } return words; }
테스트 1 〉 통과 (0.88ms, 34MB) 테스트 2 〉 통과 (0.80ms, 33.9MB) 테스트 3 〉 통과 (0.79ms, 34MB) 테스트 4 〉 통과 (0.81ms, 33.9MB) 테스트 5 〉 통과 (0.78ms, 34MB) 테스트 6 〉 통과 (0.78ms, 34MB) 테스트 7 〉 통과 (0.80ms, 33.9MB) 테스트 8 〉 통과 (0.84ms, 34MB) 테스트 9 〉 통과 (0.79ms, 33.9MB) 테스트 10 〉 통과 (0.84ms, 33.9MB) 테스트 11 〉 통과 (1.38ms, 34.1MB) 테스트 12 〉 통과 (1.12ms, 34MB) 테스트 1 〉 통과 (1.16ms, 33.7MB) 테스트 2 〉 통과 (0.64ms, 33.6MB) 테스트 3 〉 통과 (1.00ms, 33.6MB) 테스트 4 〉 통과 (1.20ms, 33.6MB) 테스트 5 〉 통과 (0.64ms, 33.8MB) 테스트 6 〉 통과 (0.68ms, 33.7MB) 테스트 7 〉 통과 (0.68ms, 33.7MB) 테스트 8 〉 통과 (0.65ms, 33.6MB) 테스트 9 〉 통과 (0.71ms, 33.5MB) 테스트 10 〉 통과 (0.64ms, 33.6MB) 테스트 11 〉 통과 (0.64ms, 33.6MB) 테스트 12 〉 통과 (0.69ms, 33.6MB) 테스트 13 〉 통과 (0.65ms, 33.6MB) 테스트 14 〉 통과 (0.64ms, 33.7MB) 테스트 15 〉 통과 (0.70ms, 33.6MB) 테스트 16 〉 통과 (0.64ms, 33.6MB) 테스트 17 〉 통과 (0.65ms, 33.6MB) 테스트 18 〉 통과 (0.62ms, 33.8MB) 테스트 19 〉 통과 (0.65ms, 33.7MB) 테스트 20 〉 통과 (1.08ms, 33.6MB) 테스트 21 〉 통과 (1.16ms, 33.6MB) 테스트 22 〉 통과 (0.64ms, 33.6MB) 테스트 23 〉 통과 (0.65ms, 33.7MB) 테스트 24 〉 통과 (0.64ms, 33.7MB) 테스트 25 〉 통과 (0.63ms, 33.6MB) 테스트 26 〉 통과 (0.64ms, 33.6MB) 테스트 27 〉 통과 (0.71ms, 33.7MB) 테스트 28 〉 통과 (0.64ms, 33.7MB) 테스트 29 〉 통과 (0.69ms, 33.6MB) 테스트 30 〉 통과 (0.81ms, 33.7MB) 테스트 31 〉 통과 (0.70ms, 33.7MB) 테스트 32 〉 통과 (0.64ms, 33.6MB) 테스트 33 〉 통과 (0.71ms, 33.6MB) 테스트 34 〉 통과 (0.65ms, 33.8MB) 테스트 35 〉 통과 (0.79ms, 33.6MB) 테스트 36 〉 통과 (0.77ms, 33.3MB) 테스트 37 〉 통과 (0.67ms, 33.7MB) 테스트 38 〉 통과 (0.71ms, 33.6MB) 테스트 39 〉 통과 (0.68ms, 33.6MB) 테스트 40 〉 통과 (0.64ms, 33.7MB)