[TIL] 카테고리/알고리즘 문제풀기
-
[자바스크립트] 프로그래머스 Lv.1 신고 결과 받기[TIL] 카테고리/알고리즘 문제풀기 2022. 6. 3. 11:39
Lv.1 의 마지막 문제!! 내일은 Lv.2를 도전해볼까 백준으로 갈까.. 고민된다 ㅋㅋ... 점점 더 어려운걸 도전하는게 맞는거 같기도 하고, 아직 Lv.1 도 좀 어려운게 있는데 + 효율적인 코드로 못 푸는데..? ㅋㅋㅋㅋ 내일 한번 도전해보고 생각해야겠다! let reported_by = id_list.map((id) => []) let answer = id_list.map((id) => 0) report = report.map((r) => r.split(' ')).forEach((r, i) => { if (! reported_by[id_list.indexOf(r[1])].includes(r[0])) { reported_by[id_list.indexOf(r[1])].push(r[0])} }) rep..
-
[자바스크립트] 프로그래머스 Lv.1 크레인 인형뽑기 게임[TIL] 카테고리/알고리즘 문제풀기 2022. 6. 1. 22:20
이건 이전 문제보다는 비교적 수월하게? 풀었다. let basket = [] moves.forEach((t) => { for (rows of board) { if (rows[t-1] !== 0) { basket.push(rows[t-1]) rows[t-1] = 0 break } } }) while (basket.some((d,i) => d === basket[i+1])) { basket.forEach((d,i) => { if (d === basket[i+1]) { basket.splice(i, 2) answer += 2 } } ) } 우선 바구니 배열을 만들어서, 뽑은 인형들을 차례로 담아주고, 인형끼리 붙은 경우 answer의 카운트를 올리고 바구니에서 빼주는 걸로! https://programmers..
-
[자바스크립트] 프로그래머스 Lv.1 [1차]다트게임[TIL] 카테고리/알고리즘 문제풀기 2022. 6. 1. 22:20
....! 어렵지 않게 풀 줄 알았는데 처음 짠 로직에 생각보다 예외 케이스가 너무 많았던 것이었다...! (일단 숫자 10(...), 첫번째 Score가 스타상일때, 스타상 옵션이 중첩될때...) 결국 이것저것 조건을 덧붙이다보니 괴상한 녀석이 탄생했다. 으... 지저분해.... let answer = dartResult.split('').map((s,i) => s === 'S' ? dartResult[i-1] === '0' && dartResult[i-2] === '1' ? 10 : dartResult[i-1]**1 : s === 'D' ? dartResult[i-1] === '0' && dartResult[i-2] === '1' ? 100 : dartResult[i-1]**2 : s === 'T' ..
-
[자바스크립트] 프로그래머스 Lv.1 [1차] 보물지도[TIL] 카테고리/알고리즘 문제풀기 2022. 5. 31. 03:59
let answer = [] let rowLength = Math.max(...arr1,...arr2).toString(2).split('').length arr1 = arr1.map((rows) => rows.toString(2).split('')) arr2 = arr2.map((rows) => rows.toString(2).split('')) for (i=0; i { blocks = blocks*1 + arr2[i][j]*1; return blocks > 0 ? '#' : ' ' } ).join('')) } 1) 보물지도의 폭(↔)기준을 먼저 잡았다 -> 맨앞이 0 이면 자릿수가 사라지는 문제때문 2) arr1과 arr2에 담긴 숫자를 각각 2진수로 변환 후 한 글자씩 쪼갠 배열로 만들어주었다. 3)..
-
[자바스크립트] 프로그래머스 Lv.1 폰켓몬[TIL] 카테고리/알고리즘 문제풀기 2022. 5. 30. 02:00
엣 ㅠㅠ 예쁘고 쉽게 잘 풀었다고 생각했는데, 1점 받았다.... 슬퍼.... 느린가..? 다른 사람들이 많이 풀어서 그런가..? const pTypes = new Set(nums) answer = nums.length/2 < pTypes.size ? nums.length/2 : pTypes.size 그래도 문제풀이에 처음으로 Set 사용해봤단거에.. 만족을.. 해보자... 점점 for 과 if 말고 다른 문법들도 사용하기 시작한거니까... 응...ㅠ +) 다른사람들이 푼 것을 보고, pTypes를 그냥 Set으로 말고 [...new Set(nums)] 로 하고 .length로 써봤다. 아주아주아주 찔끔.. 더 빠르다... 아마 Set의 size를 재는 과정이 일반 배열.length 보다 무거운가보다....
-
[자바스크립트] 프로그래머스 Lv.1 체육복[TIL] 카테고리/알고리즘 문제풀기 2022. 5. 29. 00:23
아 ㅜ 처음에 생각 못했던 예외케이스 거르느라 if 문 부분이 너무 더러워졌다.. 열받는다... 그래도 이제 알고리즘 풀 때 map이랑 filter 메소드를 사용하게 되었다. 장족의 발전...! 효율성도 점점 더 챙겨야겠지만 우선 다양하게 풀수 있게 되는걸 목표로 해보자,,, lost = lost.map((student) => (student = [student, -1]) ) reserve = reserve.map((student) => (student = [student, +1])) sum = [...reserve,...lost].sort((a,b) => a[0]-b[0]) for (i=0; i < sum.length; i++) { if (sum[i][1] 0 && sum[i-1][1] === -1 &..
-
[자바스크립트] 프로그래머스 Lv.1 실패율[TIL] 카테고리/알고리즘 문제풀기 2022. 5. 27. 14:45
지문이 길다..! 손으로 끼적이며 풀어보다 잘못해석했다는걸 알고 중간에 다시했다 ㅋㅋㅋ let answer = [] let rate = [] for (i=0; i stage>=i+1) let unClear = challenger.filter((stage) => stage === i+1) if(challenger.length !== 0) { rate.push(unClear.length/challenger.length) } else { rate.push(0) } } while (answer.length < N) { // 답안에 내림차순으로 인덱스번호+1 넣기 answer.push(rate.indexOf(Math.max(...rate))+1) rate[rate.indexOf(Math.max(...rate))]..
-
[자바스크립트] 프로그래머스 Lv.1 소수 찾기[TIL] 카테고리/알고리즘 문제풀기 2022. 5. 27. 12:55
우와 이건 조금 힘들었다. 원래 어제 풀었어야 하는데, 쉽지 뭐~♬ 하고 풀어서 제출했더니 타임 아웃이 떠서 ??? 상태로 수학 공부를 하다가 오늘 아침에야 풀었다 (.....) 처음에는 2와 n 사이의 모든 숫자가 소수인지 검증하는 알고리즘에서 (1은 어차피 아니니까...) 2와 n의 제곱근 사이의 소수를 구해 배열에 넣었다가 다시 2와 n 사이의 숫자가 배열에 있는 숫자로 나누어 떨어지는지 검증했다. 이렇게 숫자를 줄여서도 혹시 또 타임아웃 걸릴까봐 무언가로라도 나누어떨어지는순간 break를 때렸다.. let temp = [] let prime = true for(i=2; i