[프로그래머스 | Lv. 1 | JavaScript] 햄버거 만들기
·
알고리즘/문제
Link코딩테스트 연습 - 햄버거 만들기 문제풀이(1)function solution(ingredient) { const stack = []; let hamburgerCount = 0; for (let ing of ingredient) { stack.push(ing); // stack의 마지막 4개 재료가 [1, 2, 3, 1] 인지 확인 if ( stack.length >= 4 && stack[stack.length - 4] === 1 && stack[stack.length - 3] === 2 && stack[stack.length - 2] === 3 && stack[stack.length - 1] === 1 ) { ..
[프로그래머스 | Lv. 1 | JavaScript] 숫자 짝꿍
·
알고리즘/문제
Link코딩테스트 연습 - 숫자 짝꿍 문제풀이(1)function solution(X, Y) { const countX = new Array(10).fill(0); const countY = new Array(10).fill(0); for (const ch of X) { countX[parseInt(ch)]++; } for (const ch of Y) { countY[parseInt(ch)]++; } let result = ""; for (let digit = 9; digit >= 0; digit--) { const commonCount = Math.min(countX[digit], countY[digit]);..
[프로그래머스 | Lv. 1 | JavaScript] 체육복
·
알고리즘/문제
Link코딩테스트 연습 - 체육복 문제풀이(1)function solution(n, lost, reserve) { let answer = 0; const realLost = lost.filter(student => !reserve.includes(student)); const realReserve = reserve.filter(student => !lost.includes(student)); realLost.sort((a, b) => a - b); let set = new Set(realReserve); realLost.forEach(item => { if (item - 1 >= 1 && set.has(item - 1)) { ..
[프로그래머스 | Lv. 1 | JavaScript] 완주하지 못한 선수
·
알고리즘/문제
Link코딩테스트 연습 - 완주하지 못한 선수 문제풀이(1)function solution(participant, completion) { let map = {}; let p; for (let i = 0; i (2)function solution(participant, completion) { const count = {}; // 참가자 배열에서 각 이름의 등장 횟수를 기록합니다. participant.forEach(name => { count[name] = (count[name] || 0) + 1; }); // 완주자 배열에서 각 이름의 카운트를 감소시킵니다. completion.forEach(name => { count[name]--; }); // ..
[프로그래머스 | Lv. 1 | JavaScript] 대충 만든 자판
·
알고리즘/문제
Link코딩테스트 연습 - 대충 만든 자판 문제풀이(1)function solution(keymap, targets) { let answer = new Array(targets.length).fill(0); let alphabet = ['A', 'B', 'C', 'D', 'E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']; let map = {}; for (let i = 0; i = 0 && min > idx) min = idx; } map[char] = min; } for (let i = 0; i (2)function ..
[프로그래머스 | Lv. 1 | JavaScript] 둘만의 암호
·
알고리즘/문제
Link코딩테스트 연습 - 둘만의 암호 문제풀이(1)function solution(s, skip, index) { const alphabet = ['a', 'b', 'c', 'd', 'e', 'f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']; const skipSet = new Set(skip); const filtered = alphabet.filter(c => !skipSet.has(c)) const len = filtered.length; let tmp = [] for (let i = 0; i (2)function solution(s, skip, index)..
[프로그래머스 | Lv. 1 | JavaScript] 문자열 나누기
·
알고리즘/문제
Link코딩테스트 연습 - 문자열 나누기 문제풀이(1)function solution(s) { let answer = 0; let x = '' let xcnt = 0; let ocnt = 0; for (let i = 0; i
[프로그래머스 | Lv. 1 | JavaScript] 로또의 최고 순위와 최저 순위
·
알고리즘/문제
Link코딩테스트 연습 - 로또의 최고 순위와 최저 순위 문제풀이(1)function solution(lottos, win_nums) { let score = [6, 6, 5, 4, 3, 2, 1]; let wins = new Set(win_nums); let cnt = lottos.filter(item => wins.has(item)).length; let zeros = lottos.filter(item => item === 0).length; return [score[cnt + zeros], score[cnt]];}
[프로그래머스 | Lv. 1 | JavaScript] [1차] 다트 게임
·
알고리즘/문제
Link코딩테스트 연습 - [1차] 다트게임 문제풀이(1)function solution(dartResult) { const regex = /(\d+)([SDT])([*#]?)/g; const scores = []; let match; // 정규표현식을 이용하여 각 기회의 결과를 추출 while ((match = regex.exec(dartResult)) !== null) { let [_, scoreStr, bonus, option] = match; let score = parseInt(scoreStr); // 보너스에 따라 점수 제곱 적용 (S:1제곱, D:2제곱, T:3제곱) switch (bonus) { case 'S': score = Math.p..
[프로그래머스 | Lv. 1 | JavaScript] 옹알이 (2)
·
알고리즘/문제
Link코딩테스트 연습 - 옹알이 (2) 문제풀이(1)function solution(babbling) { const possibleWords = ["aya", "ye", "woo", "ma"]; let count = 0; babbling.forEach(word => { let prev = ""; let tempWord = word; for (let w of possibleWords) { if (tempWord.includes(w.repeat(2))) { return; // 연속된 같은 발음이 있으면 건너뜀 } } possibleWords.forEach(w =>..