본문 바로가기
728x90

전체 글85

[프로그래머스] 모의고사 : JavaScript 📌 문제 📌 풀이function solution(answers) { const obj = {}; const score1 = [1, 2, 3, 4, 5]; const score2 = [2, 1, 2, 3, 2, 4, 2, 5]; const score3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]; answers.forEach((v, i) => { if (v === score1[i % score1.length]) { obj[1] = (obj[1] || 0) + 1; } if (v === score2[i % score2.length]) { obj[2] = (obj[2] || 0) +.. 2025. 3. 29.
[프로그래머스] 의상 : JavaScript 📌 문제 📌 풀이function solution(clothes) { const typeCounts = {}; clothes.forEach(item => { const type = item[1]; typeCounts[type] = (typeCounts[type] || 0) + 1; }); let totalCombinations = 1; for (let type in typeCounts) { totalCombinations *= (typeCounts[type] + 1); } return totalCombinations - 1;}typeCounts 에 의상 종류별 개수를 카운트한다각 종류에 대해 의상을 고르지 않는 경우도 고려해야 하므로, 해당 종류의 의상 개수에 1을 .. 2025. 3. 23.
자료구조 및 알고리즘 정리 1. 해시개념키(key)를 이용해 값(value)에 빠르게 접근할 수 있도록 도와주는 자료구조이다.목적주된 목적은 임의의 데이터를 "키-값" 쌍으로 저장하고, 주어진 키를 통해 빠르게 해당 값을 찾을 수 있도록 하는 것이다.구조해시 테이블은 배열(혹은 버킷)의 형태로 구성되며, 각 배열의 인덱스는 해시 함수를 통해 결정된다.해시 함수임의의 입력(키)을 고정된 크기의 정수(해시 값)로 변환하는 함수로, 이 값이 배열의 인덱스로 사용된다.시간 복잡도 및 성능평균 시간 복잡도검색, 삽입, 삭제 : 보통 O(1)최악의 경우모든 키가 하나의 버킷에 몰리는 경우 O(n) → 좋은 해시 함수를 선택하고 적절한 해시 테이블 크기를 유지하면 이런 상황은 매우 드묾로드 팩터 (Load Factor)로드 팩터는 해시 테이블.. 2025. 3. 22.
[프로그래머스] 완주하지 못한 선수 : JavaScript 📌 문제 📌 풀이function solution(participant, completion) { const hash = {}; for (const name of participant) { hash[name] = (hash[name] || 0) + 1; } for (const name of completion) { hash[name]--; } for (const name in hash) { if (hash[name] > 0) return name }} 해당 문제는 해시 알고리즘 카테고리에 있는 문제였다 (따라서 해시에 맞게 풀이함)해시 테이블 생성 : 참가자 이름을 key, 해당 이름이 이미 존재하면 1을 더하고, 없으면 1로 .. 2025. 3. 22.
728x90
반응형