본문 바로가기

분류 전체보기185

[프로그래머스/카블] 1차 다트게임 *가 첫번째인지, 옵션의 중첩을 고려해야함 => 따로 옵션 배열을 만들자 dartResult를 loop돌면서 각각 num, bonus, option 배열에 분리하여 넣어준다 이때 숫자10 고려: 앞의 수가 1이고 현재가 0이면 1,0을 10으로 간주 옵션이 없는경우 다른 배열과 index를 맞추기위해: bonus를 넣고난뒤 다음char이 숫자이거나 배열을 넘어가서 undefined이면 null을 넣어준다 이제 num[i], bonus[i], option[i] 인덱스별로 계산을 해준다. Math.pow(숫자, 보너스) * 옵션 옵션이 #이면 -1을 곱해준다 옵션이 *이면 현재 값을 *2 해주고, 전의 값이 존재하면 *2 해준다. 마지막에 [단위 결과, 단위 결과, ....].reduce로 합해준다 첫번째 .. 2023. 6. 6.
[프로그래머스/카카오 블라인드] 실패율 https://school.programmers.co.kr/learn/courses/30/lessons/42889 실패율 계산 = 현재 스테이지에 남은 사람 수 / 현재 스테이지까지 올라온 전체사람수 array를 이용한 내림차순 정렬 function solution(N, stages) { var answer = []; let fails = []; // 실패율 계산 for (let stage = 1; stage s === stage).length; // 현재 stage에 남아 있는 사람의 수 const all = stages.filter(s => s >= stage).length; // fails.push([stage, curr/all]); } // 내림차순 정렬 fails.sort((a, b) => b[.. 2023. 6. 6.
[프로그래머스/카카오 블라인드] 비밀지도 https://school.programmers.co.kr/learn/courses/30/lessons/17681 0,0 일때 빼고 다 1이다 => OR | 를 이용해서 두 십진법의 OR bit연산을 구한다 이진법으로 변환 toString(2) regex /0|1/g 0|1: 0 or 1 g 전체를 찾음 replace(변경할 문자 찾는 규칙, 찾은 문자를 변경하는 규칙) +string : number 타입으로 변환 function solution(n, arr1, arr2) { return arr1.map((v, i) => addZero(n, (v | arr2[i]).toString(2)).replace(/1|0/g, a => +a ? '#' : ' ')); } const addZero = (n, s) =.. 2023. 6. 6.
[프로그래머스] 진수 변환하기 - toString(n), parseInt(n진수, n) https://school.programmers.co.kr/learn/courses/30/lessons/68935 첫번쨰 방법 전통적 수학 진법 구하는 방식으로 3씩 나눠서 나머지를 remains에다 넣어주고, 마지막 남은 몫까지 넣어준 뒤, 각 자리수 * 3의 n제곱의 합을 리턴했다. 3**i = Math.pow(3, i) function solution(n) { let remains = []; while(n >= 3) { remains.unshift(n % 3); n = Math.floor(n / 3); } remains.unshift(n); return remains.reduce((acc, curr, i) => { acc += curr * 3**i; // Math.pow(3, i) = 3**i re.. 2023. 6. 6.
[프로그래머스] 소수찾기 - Math.sqrt(n), Set.size() https://school.programmers.co.kr/learn/courses/30/lessons/12921 n까지의 숫자들 중 소수갯수 찾기 첫번째 방법 나름 머리 쓴다고 소수를 찾으면 그 수의 배수를 제거해줬다. function solution(n) { var answer = 0; const isPrime = new Array(n).fill(true); for(let i = 2; i 2023. 6. 6.
CORS 배경 토이프로젝트로 프론트서버 :3000에서 start라는 버튼을 누르면 백엔드서버 :3001로 요청을 보내는 부분을 만들고 있는데 CORS 에러가 떴다. 이 참에 정리해본다 CORS ( Cross-Origin Resource Sharing) 란 다른 출처가 리소스를 요청할 때 발생하는 에러이다. 해결법을 통해 한 출처에서 실행중인 웹 애플리케이션이 다른 출처의 자원에 접근할 수 있게 브라우저에게 알려준다. CORS 발생하는 이유, 목적? 1. 브라우저는 요청헤더에 자신의 출처 origin 를 담아 요청을 보낸다. 2. 서버가 이 요청에 응답을 할때 응답 헤더에 Access-Control-Allow-Origin에 이 리소스에 접근 가능한 출처를 보낸다 3. 클라이언트에서 자신의 origin과 서버가 보낸.. 2023. 6. 4.