전체 글

전체 글

    [BEAKJOON / node.js] 13305 주유소

    [BEAKJOON / node.js] 13305 주유소

    https://www.acmicpc.net/problem/13305 //test.txt 4 2 3 1 5 2 4 1 sol1 최솟값을 구하듯 오른쪽으로 탐색한다. 더 작은 기름값이 있는 도시가 나올 때까지 현제 도시에서 기름을 채우도록 조건문을 건다. const [n,a,b] = require('fs').readFileSync('test.txt').toString().trim().split('\n'); let km = a.split(' ').map(BigInt); let price = b.split(' ').map(BigInt); let answer = 0n; let min = price[0]; for(let i=0;i

    <BEAKJOON / node.js> 11399 ATM

    <BEAKJOON / node.js> 11399 ATM

    https://www.acmicpc.net/problem/11399 // test.txt 5 3 1 4 3 2 sol1 제일 빠른 시간의 합은 돈을 인출하는데 걸리는 시간순으로 오름차순 정렬한 후 시간을 합해주면 된다. 팩토리얼로 계산하는 함수를 만들어보고 싶었는데 한참 고민해도 만들지 못해 결국 이중for문으로 해결하기로 한다.. let [n,...input] =require('fs').readFileSync('test.txt').toString().trim().split('\n'); let arr = input.map(v => v .split(' ') .map(Number) .sort((a,b) => a-b) ); let answer = 0; for(let i=0;i { sum += v; answer..

    [BEAKJOON / node.js] 1931 회의실 배정

    [BEAKJOON / node.js] 1931 회의실 배정

    https://www.acmicpc.net/problem/1931 // test.txt 11 1 4 3 5 0 6 5 7 3 8 5 9 6 10 8 11 8 12 2 13 12 14 최대한 많은 회의를 열려면 종료시간이 빠른 회의 순으로 정렬 후 끝나자마자 바로 시작 가능한 회의의 개수를 세면 된다. sol1 let [num,...input] = require('fs').readFileSync('test.txt').toString().trim().split('\n'); arr = input.map(v => v.split(' ').map(i => Number(i))) let time = arr.sort((a,b) => a[1] - b[1]||a[0]-b[0]) let end = 0; let answer =..

    <BEAKJOON / node.js> 11047 동전 0

    <BEAKJOON / node.js> 11047 동전 0

    https://www.acmicpc.net/problem/11047 // test.txt 10 4790 1 5 10 50 100 500 1000 5000 10000 50000 그리디 문제에 처음 도전 해보았다. 그래서 내장함수 보다는 while 이나 for 문을 사용해 케이스를 탐색해보는 식으로 해결했다. so1 으로 제출해 문제는 맞췄지만, 시간이 1900ms나 나와버려서.. 다른 해결 방법을 찾아봤다. sol1 let [n,...input] = require('fs').readFileSync('test.txt').toString().trim().split('\n'); let [num,price] = n.split(' '); price = Number(price); function solution(nu..

    네이버 HTML_CSS 코칭스터디 (1)

    들어가며 정신없이 1주 차 끝내고 2주 차도 금방 지나가버렸다. 해서 2주 차까지의 중간정산(?) 느낌으로 피드백해보려 한다. 얼른 끝내고 3주 차 미션 하러 가야지.. 리더 부스터 네이버 코칭스터디는 '리더 부스터'와 '부스터' 둘 중 택해서 지원하게 된다. 팀 단위로 미션과 각종 활동을 진행하기 때문에 팀을 나눌 때 리더 1명 부스터 5명 정도로 배정된다. 개발 분야에서 친구들과 코드 맞춰가며 프로젝트를 한 것 외에 이렇게 많은 사람들이 모이는 개발 스터디는 처음이어서 팀원으로 참가해 경험에 의의를 두고자 했다. 부스터로 지원했는데 지원서 하단에 리더 부스터가 부족할 시 부스터 중에서 리더를 선발할 수 있다는 문구를 볼 수 있었다. 지원하고 연락을 기다리다 보니 기왕 하는 거 리더로 들어가 책임감을 ..

    <programmers / JavaScript> 로또의 최고 순위와 최저 순위

    https://programmers.co.kr/learn/courses/30/lessons/77484 switch 문으로 나누기에 경우의 수가 너무 많이 나와서, filter() 메서드를 이용하기로 한다. sol 1 const lottos = [44, 1, 0, 0, 31, 25]; const win_nums = [31, 10, 45, 1, 6, 19]; const rank = [6,5,4,3,2,1]; let answer = []; const min = lottos.filter(v => win_nums.includes(v)).length; const max = lottos.filter(v => v === 0).length + min; rank.includes(min) ? answer.push(rank...

    [JS] 구조 분해 할당

    알고리즘 문제를 푸는데 구조 분해 할당을 잘 사용하면 코드를 많이 줄일 수 있었다. 구조 분해 할당에 대해 잘 정리해두고 문제에 활용하려 한다. 구조 분해 할당(destructuring assignment) 구조화된 배열과 같은 이터러블 또는 객체의 구조를 파괴하려 1개 이상의 변수에 개별적으로 할당하는 것을 말한다. 배열과 객체에서 필요한 값만 추출하여 변수에 할당할 때 유용하다. 1. 배열 구조 분해 할당 배열 구조 분해 할당의 대상(할당문의 우변)은 이터러블이어야 하며, 할당 기준은 배열의 인덱스이다. 즉 순서가 중요하다. 이때 변수의 개수와 이러터블의 요소 개수가 반드시 일치할 필요는 없다. const [x,y] =[1,2]; console.log(x,y)//1 2 const [x,y] =[1];..

    [programmers / JavaScript] K번째 수

    https://programmers.co.kr/learn/courses/30/lessons/42748 배열의 범위를 주고, 범위 내에서 k번째 수를 구하는 문제다. 처음엔 splice() 메서드를 사용했지만, splice()는 원본 배열을 변경시키기 때문에 slice() 메서드를 이용해 풀었다. sol 1 const array = [1, 5, 2, 6, 3, 7, 4]; const commands = [[2, 5, 3], [4, 4, 1], [1, 7, 3]]; function solution(array,commands) { let answer = []; commands.forEach(v => { const arr = array.slice(v[0]-1,v[1]); arr.sort((a,b) => a-b)..