프로그래머스 15

프로그래머스- 2차원으로 만들기

프로그래머스 레벨 0 Day10에 돌입했다. 2차원 배열은 코딩테스트에 단골로 등장하는 문제이니 만큼 잘 짚고 넘어가는게 중요하겠다. [0,1,2,3,4,5,6,7,8] 에서 slice 메소드를 활용해 n길이 만큼 뽑아내는 것 까지는 성공하였으나, 요소간 중복되지 않고 [[0,1], [2,3], [4,5], [6,7]] 와 같이 뽑아내는데 아래와 같이 어려움을 겪었다. // 시도과정 function solution(num_list, n) { let arr = []; for (let i = 0; i < num_list.length; i++) { arr.push(num_list.slice(i, i + n)); // arr [[1,2], [2,3], [3,4], [4,5], [5,6]...] // 원하는 답:..

프로그래머스-진료 순서 정하기

[배운점] 배열 복사는 스프레드 연산자인 점 까먹지 말기!! - 오답: emergency.sort((a,b) => b-a) - 정답: [...emergency].sort((a,b) => b-a) [indexOf 메소드] arr.indexOf(searchElement[, fromIndex]) - searchElement: 배열에서 찾을 요소 - fromIndex (옵션): 검색을 시작할 인덱스. 이 값을 생략하면 배열의 처음부터 검색을 시작함. [indexOf 예시] const animals = ["cat", "dog", "elephant", "bee", "ant"]; console.log(animals.indexOf("cat")); // 0 console.log(animals.indexOf("elepha..

프로그래머스-외계행성의 나이

[시도과정] function solution(age) { // 초기값: 문자열 let answer = ''; //age는 number이므로 문자로 바꾸기 let str = String(age); // 23 --> "23" //문자를 각 배열로 만들어 주기 let arr = Array.from(str); // "23" --> ["2", "3"] let match = { "0":"a", "1":"b", "2":"c", "3":"d", "4":"e", "5":"f", "6":"g", "7":"h", "8":"i", "9":"j" } answer = arr.forEach((el) => match[el]); //["c", "d"] return answer; } 지난 시간 배운 Array.from 메소드를 활용하여..

프로그래머스-특정 문자 제거하기

// 오답: 실행시간 10초 이상 소요 function solution(my_string, letter) { var answer = ''; for (let i = 0; i < my_string.length; i++) { while (my_string[i] === letter) { answer = my_string.replace(letter, ''); } } return answer; } [오답노트] replace 메소드와 정규 표현식을 사용할 경우 for 루프는 필요하지 않다. // 오답: 테스트 케이스 1개만 통과 function solution(my_string, letter) { let answer = ''; for (let i = 0; i < my_string.length; i++) { if (m..

프로그래머스-짝수 홀수 개수

// 시도과정 function solution(num_list) { var answer = []; for (let i = 0; i < num_list.length; i++) { let even = []; let odd = []; if (num_list[i] % 2 == 0) { console.log('짝수들:', num_list[i]); even.push(num_list[i]); console.log('짝수테스트:', even); } else if (num_list[i] % 2 !== 0) { console.log('홀수들:', num_list[i]); odd.push(num_list[i]); console.log('홀수테스트:', odd); } answer.push(even.length); answer..

프로그래머스-직각삼각형 출력하기

// 정답 const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); let input = []; // input은 빈 배열 rl.on('line', function (line) { // line은 문자 -> "3" input = line.split(' '); // 단어별로 잘라서 배열에 담기 -> [3] }).on('close', function () { let number = Number(input[0]); // "3" -> 3 for( let i = 1; i 문자열만 받는다. 예) "hi".repeat(5) // "hihihihihi"..

프로그래머스-옷 가게 할인 받기

프로그래머스 0단계 문제인 `옷 가게 할인 받기` 문제를 풀어보았다. 부분점수에만 그쳐서 어떤 부분이 문제였는 지를 파악해보았다. // 나의 코드 function solution(price) { let answer= 0; if (price >= 100000) { answer = Math.floor(price * 0.95); } else if (price >= 300000) { answer = Math.floor(price* 0.9); } else (price >= 500000) { answer = Math.floor(price * 0.8); } return answer; } [배운점] 1. 조건의 순서(가격 큰 순서대로) 현재 조건의 순서로 인해 300,000 이상 또는 500,000 이상의 경우에 첫 ..

[트러블슈팅] (TypeError: Cannot read properties of null (reading '...')) 에러 해결하기

(진행배경) 프로그래머스 0단계 '배열의 평균값' 문제를 하다가 `Cannot read properties of null` 에러를 마주했다. 해당 에러는 자바스크립트 코드를 작성할때마다 종종 겪던 문제인데, 이번 기회에 정리해 두고자 한다. - 프로그래머스 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/120817 [문제 상황 - TypeError: Cannot read properties of null (reading '...') 에러] (문제상황) function solution(numbers) { var sum = 0; var avrg = 0; for (var i = 0; i < numbers.length; i++) { sum +..

JavaScript 2023.08.15

프로그래머스- 최빈값 구하기

function solution(array) { // [1, 2, 3, 3, 3, 4] var cnt= new Map(); // 짝(키-값) 만들기 var cntArray = new Array; var max = 0; for(var i of array) { if(!cnt.has(i)) cnt.set(i,0); // 요소 존재 유무 boolean 반환 | 키와 값 선언 if(cnt.has(i)) cnt.set(i, cnt.get(i)+1); while(cnt.get(i)>max) max++; } for (let [k,v] of cnt) { if(v=== max) cntArray.push(k) } return cntArray.length === 1 ? cntArray[0] : -1; }

728x90
LIST