본문 바로가기

Algorithm137

[10797번] 10부제 문제 링크 >> https://www.acmicpc.net/problem/10797 📋 문제 서울시는 6월 1일부터 교통 혼잡을 막기 위해서 자동차 10부제를 시행한다. 자동차 10부제는 자동차 번호의 일의 자리 숫자와 날짜의 일의 자리 숫자가 일치하면 해당 자동차의 운행을 금지하는 것이다. 예를 들어, 자동차 번호의 일의 자리 숫자가 7이면 7일, 17일, 27일에 운행하지 못한다. 또한, 자동차 번호의 일의 자리 숫자가 0이면 10일, 20일, 30일에 운행하지 못한다. 여러분들은 일일 경찰관이 되어 10부제를 위반하는 자동차의 대수를 세는 봉사활동을 하려고 한다. 날짜의 일의 자리 숫자가 주어지고 5대의 자동차 번호의 일의 자리 숫자가 주어졌을 때 위반하는 자동차의 대수를 출력하면 된다. 👉 입력 .. 2021. 12. 5.
[basics] 10부제 자바스크립트 알고리즘 문제풀이 강의를 듣고 정리한 내용입니다. 📋 문제 서울시는 6월 1일부터 교통 혼잡을 막기 위해서 자동차 10부제를 시행한다. 자동차 10부제는 자동차 번호의 일의 자리 숫자와 날짜의 일의 자리 숫자가 일치하면 해당 자동차의 운행을 금지하는 것이다. 예를 들어, 자동차 번호의 일의 자리 숫자가 7이면 7일, 17일, 27일에 운행하지 못한다. 또한, 자동차 번호의 일의 자리 숫자가 0이면 10일, 20일, 30일에 운행하지 못한다. 여러분들은 일일 경찰관이 되어 10부제를 위반하는 자동차의 대수를 세는 봉사활동을 하려고 한다. 날짜의 일의 자리 숫자가 주어지고 7대의 자동차 번호의 끝 두 자리 수가 주어졌을 때 위반하는 자동차의 대수를 출력하면 된다. 👉 입력 첫 줄에는 날짜의 일의.. 2021. 12. 5.
[basics] 홀수 합과 최솟값 자바스크립트 알고리즘 문제풀이 강의를 듣고 정리한 내용입니다. 📋 문제 7개의 자연수가 주어질 때, 이들 중 홀수인 자연수를 모두 골라 총합을 구하고 고른 홀수 중 최솟값을 찾아 합과 최솟값을 출력한다. 👉 입력 첫번째 줄에 100보다 작은 자연수 7개가 입력된다. 7개의 수 중 홀수는 하나 이상 존재한다. 👈 출력 첫번째 줄에 홀수들의 총합을 출력하고 두번째 줄에 홀수들 중 최솟값을 출력한다. 💡 사용된 개념 filter, reduce filter와 reduce에 대해서는 아래 링크에서 따로 포스팅해두었다. https://cansweep.tistory.com/179?category=995363 [ES6+] map, filter, reduce 함수형 프로그래밍과 JavaScript ES6+ 강의를 듣고 .. 2021. 12. 5.
[basics] 최솟값 구하기 자바스크립트 알고리즘 문제풀이 강의를 듣고 정리한 내용입니다. 📋 문제 7개의 수가 주어지면 그중 최솟값을 출력한다. 👉 입력 첫번째 줄에 7개의 수가 입력된다. 👈 출력 첫번째 줄에 가장 작은 값을 출력한다. 💡 사용된 개념 전개연산자 배열이나 문자열과 같이 반복 가능한 문자를 0개 이상의 인수 또는 요소로 확장한다. const num = [1, 2, 3]; console.log(num); console.log(...num); // output // [1, 2, 3] // 1 2 3 https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Spread_syntax 전개 구문 - JavaScript | MDN 전개 구문을 사용하면 .. 2021. 12. 5.
[basics] 1부터 N까지의 합 자바스크립트 알고리즘 문제풀이 강의를 듣고 정리한 내용입니다. 📋 문제 자연수 N이 입력될 때 1부터 N까지의 합을 출력한다. 👉 입력 첫번째 줄에 20 이하의 자연수 N이 입력된다. 👈 출력 첫번째 줄에 1부터 N까지의 합을 출력한다. 📝 풀이 2021. 12. 5.
[basics] 연필 개수 자바스크립트 알고리즘 문제풀이 강의를 듣고 정리한 내용입니다. 📋 문제 연필 1 타는 12자루이다. N명의 학생에게 1인당 연필을 1자루씩 나누어 준다고 할 때, 필요한 연필의 타 수를 출력한다. 👉 입력 첫번째 줄에 1000 이하의 자연수 N이 입력된다. 👈 출력 첫번째 줄에 필요한 연필의 타 수를 출력한다. 💡 사용된 개념 Math.floor() 주어진 숫자와 같거나 작은 정수 중 가장 큰 수를 반환한다. => 내림 Math.round() 입력값을 반올림한 수와 가장 가까운 정수 값을 반환한다. => 반올림 Math.ceil() 주어진 숫자보다 크거나 같은 숫자 중 가장 작은 숫자를 반환한다. => 올림 https://developer.mozilla.org/ko/docs/Web/JavaScript/R.. 2021. 12. 5.
[basics] 삼각형 판별하기 자바스크립트 알고리즘 문제풀이 강의를 듣고 정리한 내용입니다. 📋 문제 길이가 서로 다른 세 개의 막대 길이를 입력받아 이 세 개의 막대로 삼각형을 만들 수 있으면 "YES", 아니면 "NO"를 출력한다. 👉 입력 첫번째 줄에 100 이하의 서로 다른 세 개의 자연수가 주어진다. 👈 출력 "YES" 혹은 "NO"를 출력한다. 💡 사용된 개념 제일 긴 선의 길이가 다른 두 선의 합보다 작으면 삼각형을 만들 수 있다. 📝 풀이 삼각형을 만들 수 있는지를 판별하기 위해서는 가장 긴 막대의 길이와 세 막대 길이의 총합이 필요하다. for of문 안에서 세 개의 수를 순회하며 가장 큰 수를 max에 저장하고 총합을 sum에 저장한다. if문에서 만약 나머지 두 막대 길이의 합(= sum에서 max를 뺀 값)이 가.. 2021. 12. 5.
[basics] 3개의 숫자 중 최솟값 구하기 자바스크립트 알고리즘 문제풀이 강의를 듣고 정리한 내용입니다. 📋 문제 100 이하의 자연수 3개를 입력받고 그중 제일 작은 값 출력하기 👉 입력 3개의 자연수가 입력됨 👈 출력 3개의 자연수 중 최솟값 하나 출력 📝 풀이 answer라는 변수에 Number.MAX_SAFE_INTEGER를 이용해 안전한 최대 정수값(2^53 - 1)을 저장한다. 이후 입력받은 수들을 순회(num)하며 값을 비교해 가장 작은 값을 answer에 저장한다. 내가 풀었을 때는 이렇게 풀었는데 다른 답으로는 아래의 답도 있다. 어차피 입력이 세 개밖에 없으니 이렇게 풀어도 될 것 같다. 이걸 보니 1학년 때가 생각나기도 하고... 2021. 12. 5.
[백준 tip] node.js 입출력 💻 node.js 입출력 node.js에서 입출력을 받을 때는 readline 모듈을 사용한다. 백준에서 문제를 풀 때 fs모듈을 사용하는 것이 더 빠르다고 하지만 나는 onecompiler로 문제를 풀고 있기 때문에 readline 모듈을 쓰는 것이 아직은 좀 더 편하다. readline 모듈을 이용해 입출력의 틀을 잡자면 아래 코드와 같다. const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); rl.on('line', function (line) { // 입력 받기 }) .on('close', function () { // 문제에 따.. 2021. 12. 5.