JavaScript(17)
-
[프로그래머스] 폰켓몬
n개의 폰켓몬의 종류번호가 주어짐 [3,1,2,3] 처럼, 이 중 n/2개의 폰켓몬을 가져갈 수 있을 때 가장 많은 종류의 폰켓몬을 가져갈 때, 종류의 수 return 폰켓몬을 종류별로 나누었을 때, 만약, 종류의 수가 n/2보다 크다면 가져갈 수 있는 종류의 수는 n/2일 것이다. 만약, n/2가 종류의 수보다 크다면 가져갈 수 있는 종류의 수는 전체 종류 수 일 것이다. => n/2와 폰켓몬 종류의 수 중 더 작은 값을 return ! 해시를 사용해서 푼! function solution(nums) { let map = new Map() for(let i =0; imap.size?map.size:nums.length/2 } 생각해보니, 폰켓몬의 종류의 수만 구하면 되는 것!.... 더 간단히 set을..
2023.03.02 -
[프로그래머스] 완주하지 못한 선수
participant 배열에는 포함되지만, completion배열에는 포함되지 않은 선수 이름을 return 하는 문제 * participant가 completion보다 +1 길다 1. 두 배열을 sort 2. index 0부터 차례로 비교하여 값이 달라지는 index를 찾는다 3. participant[index]의 사람이 완주하지 못한 선수! function solution(participant, completion) { participant.sort() completion.sort() for(let i=0; i participant와 completion에 모두 있는 사람은 value가 0, participant에 만 있으면 value가 1이다. 3. map에서 value가 1인 key값을 retur..
2023.03.02 -
[프로그래머스] 괄호 회전하기
괄호가 맞게 열고 닫힌 문자열인지 확인하는 문제이다. "[({})]"이 입력값이라면, "({})][" 처럼 위치를 이동하며(원래위치로 돌아올 때 까지) 괄호가 제대로 열리고 닫힌 경우는 몇 번(횟수)인지 return 뒤 에서부터 비교한다고 하면 만약, 괄호가 "(" 다음 ")" 이라면 "({})" 순이라면 1. ")"와 "}"는 짝이 맞지 않음 > ")"을 체크해야 할 리스트에 저장 2. "}"와 "{" 짝 맞음 3. "(" 짝 없음, 하지만 체크할 리스트에 있는 ")"와 짝맞음 와 같은 방식으로 해결하였다. * dict에 "{", "(", "["가 key로 존재하지 않는 이유! 제대로 된 괄호라면 "}", ")", "]"가 먼저 나와서 check(체크해야 할 리스트)에 저장되어 있어야 함 functio..
2023.02.22 -
[프로그래머스] 직사각형 별찍기
가로가 n, 세로가 m인 직사각형 형태의 별을 출력하는 문제이다. repeat()을 사용하면 간단하게 해결할 수 있다. "반복할 문자열".repeat(반복횟수) 형태로 작성하면 된다! function solution(n, m) { return ("*".repeat(n) + "\n").repeat(m); } 이렇게 제출하였는데 오류가 발생하였다. 생각해보니 기본으로 주어지는 코드가 아래와 같았고 나는 오류인줄 알고, function solution으로 변경하여 풀었다. process.stdin.setEncoding('utf8'); process.stdin.on('data', data => { const n = data.split(" "); const a = Number(n[0]), b = Number(n[..
2023.02.22 -
[프로그래머스] 점프와 순간 이동
1. 앞으로 K만큼 이동 => 건전지 사용량 K 2. (현재까지 온 거리 * 2)위치로 이동 => 건전지 사용X => 2번 방법을 많이 사용하는 것이 유리! 2번 사용을 우선으로 하고, 어쩔 수 없을 때 1번을 사용하는 것으로 문제를 풀었다. 도착한 위치부터 0위치로 돌아간다고 생각했을 때, 위치가 짝수일 때는 2번 방법을 사용해서 절반만큼 돌아가고, (곱하기 2한 위치로 이동하니까) 위치가 홀수일 경우는 1번을 사용하여 1만큼 돌아갈 수 있다. 즉, 2로 나누어 떨어지면 사용량 0, 아니면 사용량 1이다. 예) 2500, 1250, 625, 624, 312, 156, 78, 39, 38, 19, 18, 9, 8, 4, 2, 1, 0 function solution(n) { let ans = 0; whi..
2023.02.20 -
[프로그래머스] N개의 최소공배수
function solution(arr) { var answer = 1; let yaklist = []; let yakjoin = []; arr.forEach((num) => { let newnum = num; let yak = []; var icopy = 0; // 약수를 구하는 코드 while (icopy !== 1 && newnum !== 1) { for (i = 2; i { let max = 1; yaklist.forEach((list) => { let listnum = list.filter((element) => nums === element).length; max = max > listnum ? max : listnum; }); answer *= nums ** max; }); return an..
2023.02.20 -
JavaScript의 match함수
match와 gi 대소문자 구분하지 않고 찾아줌 "aPple".match(/p/gi) //return ["P", "p"] match와 ? 만약 문자열에 찾으려는 단어가 없다면 null이 return된다. match가 return하는 값의 길이를 구하는 코드를 짰는데 match결과가 null이면 error가 발생한다. 반면, 물음표를 붙여주면 undefined로 처리되어 에러가 발생하지 않는다. "aPple".match(/g/gi).length; // TypeError: Cannot read properties of null (reading 'length') // at Object. (c:\Users\USER\Algorithm\level2\022js:1:33) // at Module._compile (no..
2023.02.13