본문 바로가기

전체 글119

프로그래머스 - 인덱스 바꾸기 문제 문자열 my_string과 정수 num1, num2가 매개변수로 주어질 때, my_string에서 인덱스 num1과 인덱스 num2에 해당하는 문자를 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요.   풀이 function solution(my_string, num1, num2) { var arr = my_string.split('') var str = [arr[num2], arr[num1]] arr[num1] = str[0] arr[num2] = str[1] return arr.join('');} 주어진 인덱스에 해당하는 문자를 빼두고 my_string을 바꾸었다.  다른 사람의 풀이 function solution(my_string, num1, .. 2025. 2. 14.
프로그래머스 - 배열 만들기 5 (map 함수 활용 시 주의점) (JavaScript) 문제 문자열 배열 intStrs와 정수 k, s, l가 주어집니다. intStrs의 원소는 숫자로 이루어져 있습니다. 배열 intStrs의 각 원소마다 s번 인덱스에서 시작하는 길이 l짜리 부분 문자열을 잘라내 정수로 변환합니다. 이때 변환한 정수값이 k보다 큰 값들을 담은 배열을 return 하는 solution 함수를 완성해 주세요.   풀이해당 문제에서 거쳐야할 것은 세가지.1. 문자열에서 원하는 부분을 잘라냄2. String을 정수로 변환3. 숫자가 k 미만일 시 반환하지 x 어떤 것부터 처리해야 효율적일까? 안좋은 예 function solution(intStrs, k, s, l) { return intStrs.map(v=> { if(v.slice(s,s+l)>k) return v... 2025. 2. 14.
[JavaScript] 프로그래머스 - 콜라츠 수열 만들기 (재귀 함수) 문제 모든 자연수 x에 대해서 현재 값이 x이면 x가 짝수일 때는 2로 나누고, x가 홀수일 때는 3 * x + 1로 바꾸는 계산을 계속해서 반복하면 언젠가는 반드시 x가 1이 되는지 묻는 문제를 콜라츠 문제라고 부릅니다. 그리고 위 과정에서 거쳐간 모든 수를 기록한 수열을 콜라츠 수열이라고 부릅니다. 계산 결과 1,000 보다 작거나 같은 수에 대해서는 전부 언젠가 1에 도달한다는 것이 알려져 있습니다. 임의의 1,000 보다 작거나 같은 양의 정수 n이 주어질 때 초기값이 n인 콜라츠 수열을 return 하는 solution 함수를 완성해 주세요.    풀이 function solution(n) { var answer = [n]; while (n != 1) { n = (n%2 .. 2025. 2. 14.
프로그래머스 - 중복된 문자 제거 문제 문자열 my_string이 매개변수로 주어집니다. my_string에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 return하도록 solution 함수를 완성해주세요.   풀이 function solution(my_string) { var set = new Set(); my_string.split('').map(v=>set.add(v)) return Array.from(set).join('');}  set 객체는 중복된 요소를 추가할 수 없기 때문에 set을 만들고 my_string라는 문자열을 배열로 만든 다음 걔를 set 안에 추가했다.그리고 set을 배열로 바꾸었다.  다른 사람의 풀이 function solution(my_string) { return [..... 2025. 2. 5.
프로그래머스 - 모음 제거 (JavaScript) 문제 영어에선 a, e, i, o, u 다섯 가지 알파벳을 모음으로 분류합니다. 문자열 my_string이 매개변수로 주어질 때 모음을 제거한 문자열을 return하도록 solution 함수를 완성해주세요.  나의 풀이function solution(my_string) { return my_string.replace(/[aeiou]/g,"")} 정규표현식을 이용하여 풀이 '[]' 는 내부에 지정된 문자열의 범위 중에서 한 문자만을 선택하다는 특수한 의미를 가진다.'g'는 Global을 표현하며 대상 문자열내에 모든 패턴들을 검색하는 것을 의미한다.   참고)https://hamait.tistory.com/342 2025. 2. 4.
프로그래머스 - 팩토리얼 (JavaScript) 문제 팩토리얼 (i!)은 1부터 i까지 정수의 곱을 의미합니다. 예를들어 5! = 5 * 4 * 3 * 2 * 1 = 120 입니다. 정수 n이 주어질 때 다음 조건을 만족하는 가장 큰 정수 i를 return 하도록 solution 함수를 완성해주세요.  입출력 예 #1 10! = 3,628,800입니다. n이 3628800이므로 최대 팩토리얼인 10을 return 합니다. 입출력 예 #2 3! = 6, 4! = 24입니다. n이 7이므로, 7 이하의 최대 팩토리얼인 3을 return 합니다.  나의 풀이function solution(n) { var num = 1; while (true) { var cal = 1; for (var i = 1 ; i n) break; .. 2025. 2. 4.
프로그래머스 - 주사위의 개수 문제머쓱이는 직육면체 모양의 상자를 하나 가지고 있는데 이 상자에 정육면체 모양의 주사위를 최대한 많이 채우고 싶습니다. 상자의 가로, 세로, 높이가 저장되어있는 배열 box와 주사위 모서리의 길이 정수 n이 매개변수로 주어졌을 때, 상자에 들어갈 수 있는 주사위의 최대 개수를 return 하도록 solution 함수를 완성해주세요.   풀이function solution(box, n) { return parseInt(box[0]/n)*parseInt(box[1]/n)*parseInt(box[2]/n);}각 변을 n으로 나누어서 전부 곱했다.   다른 사람의 풀이function solution(box, n) { return box.reduce((acc,v) => acc * Math.floor(.. 2025. 1. 23.
프로그래머스 - 배열 회전시키기 문제정수가 담긴 배열 numbers와 문자열 direction가 매개변수로 주어집니다. 배열 numbers의 원소를 direction방향으로 한 칸씩 회전시킨 배열을 return하도록 solution 함수를 완성해주세요.    function solution(numbers, direction) { var answer = []; if (direction == "left") { answer = numbers.map((v,i)=>numbers[i+1]!=null ? numbers[i+1] : numbers[0])} else { answer = numbers.map((v,i)=> i!== 0 ? numbers[i-1] : numbers[numbers.length-1])}.. 2025. 1. 23.