[프로그래머스] 타겟넘버
코딩테스트 2022. 9. 2. 18:17

function solution(numbers, target) { // https://school.programmers.co.kr/learn/courses/30/lessons/43165 let 방법의수 = 0; // 0,0으로 시작하여 모든 경우의 수 탐색 재귀함수(0, 0); function 재귀함수 (인덱스, 합) { // 모든 index를 탐색 if( 인덱스 === numbers.length){ // index와 numbers 길이와 같아지면 종료한다 if(합 === target ){ // 합과 타겟과 동일하다면 방법의수 ++ 방법의수++ } // 탈출 return } // 해당 노드에서 +,-를 모두 실행한다. 재귀함수(인덱스+1, 합 + numbers[인덱스]); 재귀함수(인덱스+1, 합 - n..

[프로그래머스] H-Index
코딩테스트 2022. 8. 26. 14:24

function solution(citations) { //https://school.programmers.co.kr/learn/courses/30/lessons/42747#qna // 1. 논문을 많이 인용된 순으로 정렬 // 2. index와 citations 두 숫자를 비교하며 내려갑니다. // 3. 두 숫자가 같아지거나 citations가 index보다 더 작아지기 시작하는 직전의 숫자를 찾아냅니다 return citations.slice(0) .sort((a,b)=> b - a) .reduce((acc,cur,index,array)=> index < array[index] ? acc += 1 : acc,0) } 프로그래머스 문제를 이해하기 너무 어려워서 위키피아 설명을 참조했습니다. for문으로..

[프로그래머스] 영어 끝말잇기
코딩테스트 2022. 8. 25. 22:52

// https://school.programmers.co.kr/learn/courses/30/lessons/12981 function solution(n, words) { let answer; let playerNumber = 1; let turn = 1; const pastWords = []; for(let i = 0; i { return pastWord.substr(-1) === currentWord.substr(0,1) ? false : true } const checkOneWord = (string) => { return string.length === 1 ? true : false } const checkSameWord = (pastWords,word) => { return pastWords...

[프로그래머스] 기능개발
코딩테스트 2022. 8. 25. 22:22

// https://school.programmers.co.kr/learn/courses/30/lessons/42586?language=javascript function solution(progresses, speeds) { var answer = []; // 소요되는 작업일수로 변경 const days = progresses.slice(0).reduce((acc,cur,index,array)=>{ let count = 0; for(cur; cur < 100; speeds[index] ){ count ++ cur = cur + speeds[index] } return acc = [...acc, count] },[]) // 배열 순회 마지막 인덱스와 배포갯수 설정(기본 자기자신 1) let lastInd..

[프로그래머스] 체육복
코딩테스트 2022. 8. 23. 14:41

// https://school.programmers.co.kr/learn/courses/30/lessons/42862 function solution(n, lost, reserve) { // 여벌이 있는 학생만 체육복 빌려줄수있다 // 여벌을 가지고 있는 학생도 도난을 당할수있다. // lost, reserve는 각 학생들의 index //전체 학생 배열 생성 const student = new Array(n).fill(1) let max = 0; // 분실학생 for loop -- for(let i = 0; i < lost.length; i++){ student[lost[i]-1] -= 1 } // 여분데이터 for loop ++ for(let i = 0; i < reserve.length; i++)..

[프로그래머스] 크레인 인형뽑기 게임
코딩테스트 2022. 8. 21. 14:39

// https://school.programmers.co.kr/learn/courses/30/lessons/64061 function solution(board, moves) { const bucket = []; let result = 0; // board 인덱스별 board의 가로 위에서 아래로 // moves 배열 각 원소들의 값은 board의 index이며 해당하는 위치에 가장 위에 있는 인형을 가지고온다 for (const move of moves){ for(let i=0; i= 2){ // 새로 추가된것과 이전값을 비교해 동일하면 제거 후 result값 증가 if(bucket[bucket.length-1] === bucket[bucket.length-2]){ bucket.splice(bucke..

[프로그래머스] [카카오 인턴] 키패드 누르기
코딩테스트 2022. 8. 20. 14:42

// https://school.programmers.co.kr/learn/courses/30/lessons/67256 function solution(numbers, hand) { let answer = ''; let rightHandPosition = '#'; let leftHandPosition = '*'; for(let i = 0; i < numbers.length; i++) { const checkHandle = checkPosition(numbers[i]) if(checkHandle){ // 키패드 위치가 왼쪽,오른쪽이면 answer += checkHandle // 정답 스트링에 추가 // 마지막 위치 변수에 저장 if(checkHandle === 'L'){ leftHandPosition = ..

[프로그래머스] 로또의 최고 순위와 최저 순위
코딩테스트 2022. 8. 19. 13:12

https://school.programmers.co.kr/learn/courses/30/lessons/77484 function solution(lottos, win_nums) { // 정해진 등수를 내림차순 선언 const winsArray = [6,6,5,4,3,2,1]; // 맞춘 번호 갯수 let result = 0; // 분실한 번호 갯수 let lost = 0; // 구매한 번호를 기준으로 분실한 갯수와 맞춘 번호 갯수 for loop for(const lotto of lottos){ if(!lotto) lost ++ if(win_nums.includes(lotto)) result ++ } // 맞춘갯수와 잃어버린 숫자를 더해 최고 등수 계산 const max = result + lost; ..

input type number에서 한글입력 방지
JavaScript 2022. 6. 17. 18:39

폼에서 한 Input에서 데이터가 넘어오질 않아 확인해달라는 요청이 들어왔다. 확인을 해보니 문제는 type이 number인 input에서 한글이 입력되었을때 빈 값을 리턴하는것이였다. 먼저 정규표현식으로 입력값을 숫자만 남기고 제거하는 방법을 사용하려고 했는데, 아무리 해도 undefined값이 리턴되었다. e.target.value를 확인한 결과 한글이 입력되는순간 빈값으로 변경되었고 정규표현식을 사용하려해도 사용할수 없는 상황이였다. Type을 text로 설정해 정규표현식으로 숫자만 남기는식으로 하고 싶었지만 모바일에서 숫자 키패드가 나와야 하는 상황이라 text를 사용할수 없었고, 이벤트 객체 안에 사용할만한 다른놈이 있나 콘솔을 찍어봤다. 흔히 사용하는 target.value와 currentTa..

리액트 페이지 뒤로가기 제어
ReactJS 2022. 6. 16. 13:57

브라우저에 있는 뒤로 가기를 실행했을 때 정말 해당 페이지를 떠날 것인지 Confirm 모달을 통해 True일 때만 페이지를 벗어날 수 있게 해야했다. 과거에도 이런 비슷한 작업을 한 적이 있고 제어할 수 없다 라는 결론이 나왔었는데 .. 기억의 오류였다. 과거 경험한것은 브라우저 종료를 제어할 수 있는가에 대한 것이었다. 먼저 React에서는 react router dom의 useHistory의 객체를 통해 해당 액션이 push인지 pop인지를 구분하고 컨트롤 할 수 있다. 하지만 내가 사용하는 react router dom의 버전은 V6 버전이였고, history객체는 사라지고 navigate로 대체되었다. navigate에서는 해당 기능이 없었고 결국 다른 방법을 사용해야했다. const handl..