728x90
반응형

프로그래머스 19

[프로그래머스] 숨어있는 숫자의 덧셈 (2)

24년 12월 16일해결한 문제 갯수: 4 문제 설명 문제 분석문자열은 영문자, 숫자로만 구성됩니다.연속된 숫자는 하나의 숫자로 취급합니다.'000123'과 같이 0이 선행하는 경우는 없습니다.숫자가 없는 경우 0을 반환합니다.  첫 번째 접근: Reduce를 이용한 처리function solution(str) { return Array.from(str).reduce((a, c, i) => { if(Number(c) || c === '0'){ a += c } else if(!Number.isNaN(Number(a.slice(-1)))) a += ' ' return a }, '').split(' ').reduce((a, c)..

[프로그래머스] 치킨쿠폰

24년 12월 15일해결한 문제 갯수: 8 문제 설명 문제 분석 치킨을 주문하면 한 마리당 쿠폰을 한 장 받습니다.쿠폰을 10장 모으면 치킨 한 마리를 서비스로 받을 수 있습니다.서비스 치킨을 받으면 쿠폰도 한 장 받습니다. 접근: 반복문을 이용한 해결function solution(chicken) { let answer = 0; let rest = chicken; while(rest / 10 >= 1) { answer += Math.floor(rest / 10); rest = Math.floor(rest / 10) + rest % 10; } return answer;}1. answer: 받을 수 있는 서비스 치킨의 총 개수2. rest : 현재..

[프로그래머스] 배열의 길이를 2의 거듭제곱으로 만들기

24년 12월 14일해결한 문제 갯수: 52 문제 설명  문제 분석- 주어진 배열 arr의 길이를 2의 거듭제곱으로 만들고, 추가된 공간을 0으로 채우는 문제입니다. 이때 최소한의 0을 추가하여 2의 거듭제곱 길이를 만들어야 합니다.- 원래 배열의 요소는 그대로 유지합니다.  첫 번째 접근: 반환되는 배열의 길이 계산function solution(arr) { const n = Math.ceil(Math.log(arr.length) / Math.log(2)) return new Array(Math.pow(2, n)).fill(0).map((el, i) => arr[i] ? arr[i] : el)}1. n : 반환되어야 하는 배열의 총 길이- '2ⁿ = arr.length'를 만족하는 n을 계산..

[프로그래머스] 정수를 나선형으로 배치하기

24년 12월 13일해결한 문제 갯수: 24 문제 설명 문제 분석- 주어진 크기 n x n의 2차원 배열에 1부터 n² 까지의 정수를 나선형으로 채우는 문제입니다. 숫자는 좌측 상단에서 시작하여 시계 방향으로 나선형을 그리며 채워집니다.  첫 번째 접근function solution(n) { let d = 'right' let [i, j, value] = [0, 0, 1] const answer = Array.from({length: n}, () => new Array(n).fill(0)) while(value = 0 && answer[i][j-1] === 0) j -= 1 else { d = 'top' ..

[프로그래머스] 전국 대회 선발 고사

24년 12월 12일해결한 문제 갯수: 10 문제 설명 문제 분석- 학생들의 순위(rank)와 참가 가능 여부(attendance)를 기반으로 특정 조건을 만족하는 학생들을 선발하고, 그 결과를 계산하는 문제입니다. - rank: 각 학생의 시험 점수 순위가 적힌 배열- attendance: 각 학생의 참가 가능 여부(true/false)가 적힌 배열- 참가 가능한 학생들 중 순위가 가장 높은 3명을 선발합니다.- 선발된 학생들의 인덱스를 사용하여 10000a + 100b + c 계산합니다.  접근: 메소드 체이닝function solution(rank, attendance) { return attendance .map((el, i) => el ? i : '') .filte..

[프로그래머스] 왼쪽 오른쪽

24년 12월 11일해결한 문제 갯수: 11 문제 설명 문제 분석- "l"이 "r"보다 먼저 나오면, "l" 이전의 모든 원소를 순서대로 담은 배열을 반환합니다. - "r"이 "l"보다 먼저 나오면, "r" 이후의 모든 원소를 순서대로 담은 배열을 반환합니다.- "l"과 "r"이 없다면 빈 배열을 반환합니다.     첫 번째 접근: indexOf를 활용한 방법 function solution(str_list) { let answer const [lIdx, rIdx] = [str_list.indexOf("l"), str_list.indexOf('r')] if([lIdx, rIdx].includes(-1)) { if(lIdx === rIdx) return [] ..

[프로그래머스] 배열의 길이에 따라 다른 연산하기

24년 12월 9일해결한 문제 갯수: 36 문제 설명 문제 분석- arr의 길이가 홀수라면, arr의 모든 짝수 index 위치에 n을 더한 배열을 반환합니다.- arr의 길이가 짝수라면, arr의 모든 홀수 index 위치에 n을 더한 배열을 반환합니다. - 나머지 요소는 그대로 유지합니다.  첫 번째 접근: 조건문을 사용해 요구사항을 그대로 옮겨보기function solution(arr, n) { let isOddLength = arr.length % 2 return arr.map((item, i) => { if(isOddLength && !(i % 2)) { return item + n } else if(!isOddLength && i ..

JS Practice) 프로그래머스 : 저주의 숫자 3

저주의 숫자 3 문제설명 : 3x 마을 사람들은 3을 저주의 숫자라고 생각하기 때문에 3의 배수와 숫자 3을 사용하지 않습니다. 3x 마을 사람들의 숫자는 다음과 같습니다. 정수 n이 매개변수로 주어질 때, n을 3x 마을에서 사용하는 숫자로 바꿔 return 하도록 solution 함수를 완성해 주세요. 제한 사항 1 ≤ n ≤ 100 입출력 예 n result 15 25 40 76 접근 : 문제 설명을 보면 숫자에 3이 들어가거나 3의 배수는 사용할 수 없다. 처음에는 배열을 사용해 push 하는 방식으로 문제를 풀고자 했으나 배열의 한계 길이를 넘었다는 에러를 반환했다. 그래서 문자열을 사용해 문제를 풀고자 했다. 숫자는 변수 str에 공백과 함께 합쳐주었고 넣어야 할 숫자는 i를 사용했다. whi..

JS Practice) 프로그래머스 : 두 개의 매개변수 중 더 큰 수 구하기 / 숫자 비교하기 / 나이출력 / (num1 / num2) * 1000의 몫 반환

1. 두 개의 매개변수 중 더 큰 수 구하기 - 내가 짠 코드 function maxNum = (x, y) => Math.max(x, y); - Solution function maxNum = (x, y) => x > y ? x : y; 2. num1 / num2의 몫 반환 - 내가 짠 코드 function solution(num1, num2) { return parseInt(num1/num2); } - Solution const solution = (num1, num2) => Math.floor(num1 / num2) 3. 숫자 비교하기 : 두 수의 일치여부 확인하기 (num1과 num2가 같으면 1, 다르면 -1 반환 ) - 내가 짠 코드 function solution(num1, num2) { le..

728x90
반응형