목록전체 글 (86)
undefined
문제 설명 3273번: 두 수의 합 n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i < j ≤ n)을 만족하는 www.acmicpc.net 문제 풀이 const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); let input = []; let count = 0; let N = 0; let t = 0; rl.on('line', function (line) { if (!c..
문제 설명 11728번: 배열 합치기 첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000) 둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거 www.acmicpc.net 문제 풀이 const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); let input = []; let N = 0; let count = 0; rl.on('line', function (line) { if (!count) { N = line .split..
왜 사용하는가? 코드의 효율성 판별 수동적인 시간측정의 문제 해결 어떻게 사용하는가? 완벽한 시간을 구하는게 아님 ⇒ 연산의 갯수를 구하여 전체적인 추세를 파악하기 위함 1. 시간복잡도 종류: O(1) : 값이변해도 시간이 변하지 않음 ⇒ 일직선 O(n) : n이 커질수록 시간도 n만큼 증가 ⇒ 리니어그래프 O(n**) : n이 커질수록 시간도는 n보다 더 증가 ⇒ 상승추세그래프 예시 1) For루프 답: BigO = O(n) 단, n이 아무리 커도 5까지만 루프를 제한시키는 경우에는 O(1)이됨 예시 2) 단순 상수 계산 답: BigO = O(1) 예시 3) 2중For루프 답: BigO = O(n^2) 2. 공간복잡도 종류: num,undefined,null,bool ⇒ O(1) (primitive v..

문제 설명 s를 나눠서 단어로 만들어주고 -> 단어를 나눠서 첫번째 요소를 대문자로 바꿔준다. 첫 문자가 숫자일 때와 공백일때를 대비해준다. 문제 풀이 function solution(s) { const splited = s.toLowerCase().split(' ') const answer = splited.map(word => { let arr = word.split('') if(arr[0] !== null && isNaN(word)) { arr[0] = arr[0].toUpperCase() } return arr.join('') }).join(' ') return answer } 1. 초기화 해주기 위해서 모두 소문자로 바꿔주고 단어별로 나누어 준다. 2. 단어 별로 다시 쪼개주고 첫번 째 값이 n..

문제 설명 다리에서 들어오고 나갈때 카운트 해야함 다리의 배열 요소의 합 + 현재 대기 트럭무게의 합이 weight를 넘어서면 안됨 문제 풀이 function solution(bridge_length, weight, truck_weights) { const bridge = new Array(bridge_length).fill(0) let count = 0 while(bridge.length) { count++ bridge.shift() if(truck_weights.length) { const nowWeight = bridge.reduce((sum,cur)=>sum+cur,0) if(nowWeight+truck_weights[0] 다리에 들어오는 상태 5. 다리무게제한을 초과한다면 다리배열에 0을 푸시한..

문제 설명 합쳐서 비교하기 위해 문자열로 바꿔서 정렬해주고 sort함수를 이용하여 비교 배열 요소 모두 0일때는 가장 큰 수는 0 이므로 0리턴 문제 풀이 function solution(numbers) { let answer = numbers.map(e=>`${e}`).sort((a,b)=>(b+a)-(a+b)).join('') return answer[0]==='0' ? '0' : answer } 1. numbers요소를 모두 문자로 바꿔준다. 2. 정렬로 (b+a)-(a+b)을 해준다. ==> 문자열이기에 6,10 의경우에 106-610이 된다. 이때 음수라면 안바뀐다. 즉, 2개의 요소를 그냥 더한것(a+b)보다 바꿔서 더한것(b+a)이 크면 순서를 바꾼다. 반대로 그냥 더한것(a+b)이 더 크면..