프론트 개발자를 위한 여정

모든 영역을 안내하는 개발자

2025/03 24

[JS] 문자열 내 각 문자 개수 세기 / Map 사용, Object 사용, reduce 활용 방법 비교

📌 문제주어진 문자열에서 각 문자의 등장 횟수를 계산하여 객체(Map)로 반환하는 함수를 구현하시오.function charCount(str) { // 여기에 코드 작성}console.log(charCount("hello world"));/*출력 예시:{ h: 1, e: 1, l: 3, o: 2, w: 1, r: 1, d: 1 }*/ 🔹 코드function charCount(str) { const map = new Map(); const word = str.split(''); for(let i = 0; i  🔎 풀이 과정1️⃣ 문제 접근 방식문자열을 순회하면서 각 문자의 등장 횟수를 세면 됨공백은 무시해야 하므로 if (word[i] === ' ') continue; 처리객체(Ma..

[JS] 배열에서 최솟값과 최댓값 찾기 / 정렬sort, Math.min()&max(), 반복문 방법 비교

📌 문제주어진 배열에서 최솟값과 최댓값을 찾아 배열로 반환하는 함수를 구현하시오.function findMinMax(arr) { // 여기에 코드 작성 }console.log(findMinMax([3, 1, 4, 1, 5, 9, 2, 6])); // [1, 9]  🔹 코드function findMinMax(arr) { arr.sort(); return [arr[0], arr[arr.length - 1]];}console.log(findMinMax([3, 1, 4, 1, 5, 9, 2, 6])); // [1, 9]🔎 풀이 과정1️⃣ 문제 접근 방식배열을 정렬한 후, 첫 번째 값과 마지막 값이 최솟값과 최댓값이므로 이를 반환함.정렬을 사용하는 방식은 직관적이지만, 비효율적인 방법일 수 있..

[JS] FizzBuzz 문제 / 조건문, 문자열누적, Map활용

📌 문제1부터 N까지의 숫자를 출력하되,3의 배수일 경우 "Fizz"5의 배수일 경우 "Buzz"3과 5의 공배수일 경우 "FizzBuzz"그 외의 경우, 숫자를 그대로 출력🔹 코드function fizzBuzz(n) { for (let i = 1; i 🔎 풀이 과정1️⃣ 문제 접근 방식i % 3 === 0 && i % 5 === 0을 먼저 검사해야 한다.그렇지 않으면 i % 3 === 0 또는 i % 5 === 0 조건이 먼저 실행되어 FizzBuzz가 출력되지 않음.시간 복잡도는 O(n)이며, n개의 숫자를 한 번씩 검사한다.🚀 추가적인 해결 방법1️⃣ 문자열 누적 방식function fizzBuzz(n) { for (let i = 1; i ✅ 장점if-else 대신 문자열을 누적하..

[JS] 문자열 뒤집기 / array-reverse, for문, 재귀함수

📌 문제주어진 문자열을 뒤집어서 반환하는 함수를 구현하시오. function reverseString(str) { // 여기에 코드 작성}console.log(reverseString("hello")); // "olleh"🔎 풀이 과정function reverseString(str) { return str.split('').reverse().join('');}console.log(reverseString("hello")); // "olleh"문제 접근 방식문자열을 배열로 변환한 후, reverse() 메서드를 사용하여 순서를 뒤집고 다시 문자열로 결합하는 것이다.문제 해결 과정split('')을 사용하여 문자열을 문자 배열로 변환"hello".split(''); // ['h', 'e', 'l'..