본문 바로가기
반응형

알고리즘42

[백준] JS/ 4949 균형잡힌 세상 ❖.실제 백준 풀이에서는 fs.readFileSync('./test') -> fs.readFileSync('./dev/stdin') 이렇게 고쳐서 생각해주세요 처음 풀이는 완전히 잘못 생각했다. 두개의 개수만 맞으면 된다고 생각해서 정규표현식으로 정성스럽게 이상한 코드를 써내려갔다..^^ 처음 풀이 ( 방향 완전 잘못 ) const fs = require('fs'); let input = (fs.readFileSync('./test') + '').toString().trim().split('.'); input.pop(); input.pop(); console.log(input); const regL = /\[/g; const regR = /\[/g; const regl = /\(/g; const regr.. 2021. 9. 29.
[백준] JS/ 10798 세로읽기 내 풀이1(오답) const fs = require('fs'); let input = (fs.readFileSync('./dev/stdin') + '').split('\n'); let ans = ''; const wordArr = input.map((i) => i.split('')); const turnCnt = wordArr.length; let allCnt = 0; while (allCnt { if (word[0] !== undefined) ans += word.shift(); else allCnt += 1; }); } console.log(ans); 1. 글자를 위와 같은 이중배열로 생성 2. 이 배열의 길이 => 개수로 두고 3.. 2021. 9. 29.
[codility] JS Lv4-3 MaxCounter 📌 4-3 MaxCounter 내 풀이 1 (오답) function solution(N, A) { let ans = new Array(N).fill(0); A.forEach((a) => { if (a { let idx = a - 1; if (a 2가지 testcase가 오답이 되었다. 내풀이 3 (100%) function solution(N, A) { let ans = new Array(N).fill(0); let maxNum = 0; let last = 0; A.forEach((a) => { let idx = a - 1; if (a { if(a < last){ ans[idx] = last } }) return ans; } Math.max 하는 부분을 지우기 위해 last 라는 변수를 추가해 A를 돌며.. 2021. 9. 24.
[codility] JS Lv4-2 PermCheck 📌4-2 PermCheck 내 풀이1 (58%) function solution(A) { A.sort(); let Adic = new Array(A.length - 1).fill(0); A.forEach((a) => (Adic[a - 1] = 1)); if (Adic.indexOf(0) a-b) if( A[0]!==1) return 0 for (let i = 0; i 2021. 9. 22.
[codility] JS Lv4-1 ForgRiverOne 📌 4-1 ForgRiverOne 내풀이 1 (72%) 시간초과 function solution(X, A) { ans = -1; let idxArr = new Array(X).fill(0); const isContinue = (arr) => { const idx = arr.findIndex((ele) => ele === 0); if (idx >= 0) return false; else return true; }; for (let i = 0; i { let ans = true for (let i = 0; i < arr.length; i++) { if (arr[i] === 0) { ans = false break } } return ans }; for (let i = 0; i 2021. 9. 18.
[codility] JS Lv3-2 PermMissingElem 📌 3-2 PermMissingElem 내풀이 (시간 초과) function solution(A) { if (A.length === 0) return 1; A.sort(); for (let i = 0; i idxArr[a-1]=1) return idxArr.findIndex((ele)=>ele===0)+1 } 1) 인덱스만큼의 새로운 배열을 만든다. 2) A를 돌며 idxArr의 A idx자리를 1로 .. 2021. 9. 17.
[이코다] 그리디-기출문제 P.314 만들 수 없는 금액 내 풀이 n = int(input()) money = list(map(int,input().split())) maxM = max(money) confirm = [0 for i in range(10000)] print(confirm) for i in range(len(money)): for j in range(i+1,len(money)): confirm[i+j] = 1 print(confirm.find(0,1)) confirm이라는 최대값까지의 0으로 찬 배열을 만들고 이중 for문을 돌아 모든 값을 더해서 그 인덱스에1을 넣어준 후에 0 인덱스를 제외한 0이 나온 첫번째 인덱스를 찾으려 했지만 잘못했다. 정답 풀이 n = int(input()) money = list(map.. 2021. 8. 31.
[이코다] 기출문제 - 그리디 p.311 모험가 길드 내 풀이 n = int(input()) guild = list(map(int,input().split())) guild.sort() cnt=0 while guild: num = guild.pop(0) guild = guild[num:] cnt+=1 모험가 길드를 오름차순 정렬하고 quild가 없어질때까지 첫번째 모험가를 빼고 그 모험가의 공포도만큼의 명수를 제거하면 된다고 생각했다. 오류 : 2,3,3 이면 그냥 2,3이 빠지게 될텐데 3은 3명 이상이어야지 그룹이 결성될 수 있으므로 로직 자체가 틀렸다. 정답 풀이 n = int(input()) guild = list(map(int,input().split())) guild.sort() cnt=0 ans=0 for i in gui.. 2021. 8. 25.
[codility] Lesson 4-4) PermCheck 5-1) countDiv 5-2) GenomicRangeQuer 📌 4-4) PermCheck 1부터 N까지의 +1 씩 증가하는 수열인지 아닌지 판별하여라 처음풀이 def solution(A): A.sort() if len(A)>1: for i in range(len(A)-1): if A[i]+1==A[i+1]: ans=1 else: ans=0 break return ans else: if A[0]==1: return 1 else: return 0 A의 배열을 뒤의 값과 비교하고 그 값과 1차이 날때만 정답 아니면 0 A배열 인자가 하나라면 1일때만 정답 아니면 0 이라는 로직으로 풀었지만.. 히든 테케를 유심히 읽어보니 [2,3,4,5...] 1이 아닌 수로 시작하는 연속수열 [1,1] 더블 두개가 안잡히는걸 확인하고 정답 풀이 def solution(A): A.s.. 2021. 7. 17.
반응형