본문 바로가기

Algorithm/Baekjoon55

테스트 케이스의 개수를 입력받는 유형 반복문 유형에서는 반복 횟수와 관련이 있는 테스트 케이스의 개수를 입력받는 유형이 꽤 있었다. 기존 유형에서는 아래와 같이 예제 입력을 받아let input = require('fs').readFileSync('/dev/stdin').toString().split('\n') 첫번째 예제 입력은 input[0], 두번째 예제 입력은 input[1], ...과 같이 처리하였으나 테스트 케이스의 개수를 입력받는 유형에서는 input[0]이 테스트 케이스가 되므로 예제 입력을 처리하는 방법도 달라진다. 원래는 예제 입력을 input[1], input[2], ...부터 처리하는 방식으로 풀이하였다. 백준 10950번let input = require('fs').readFileSync('/dev/stdin').to.. 2024. 10. 6.
백준 25314번 백준 25314번을 풀어보았다.let input = require('fs').readFileSync('/dev/stdin').toString()N = Number(input)let output = ''for (let i = 0; i  반복문을 사용하는 아주 간단한 문제였다. 이 문제가 반복문으로 분류되어 있는 걸 보면 이 풀이가 더 의도에 부합하는 풀이 같지만 repeat 메소드를 사용하면 아래와 같은 풀이도 가능하다.let input = require('fs').readFileSync('/dev/stdin').toString()N = Number(input)console.log(`${'long '.repeat(N/4)}int`) repeat 메소드는 다음과 같은 형태로 사용하며 문자열을 반복 횟수만큼 .. 2024. 10. 5.
백준 8393번 백준 8393번을 풀어보았다.let input = require('fs').readFileSync('/dev/stdin').toString().split(' ')input = Number(input)let sum = 0for (let i = 1; i  반복문을 사용하는 아주 간단한 문제였다. 이 문제가 반복문으로 분류되어 있는 걸 보면 이 풀이가 더 의도에 부합하는 풀이 같지만 수학적 지식을 사용하면 아래와 같은 풀이도 가능하다.let input = require('fs').readFileSync('/dev/stdin').toString().split(' ')input = Number(input)console.log(input*(input+1)/2) 1부터 n까지의 합은 n*(n+1)/2와 같다는 사실을.. 2024. 10. 4.
백준 10950번 백준 10950번을 풀어보았다.let input = require('fs').readFileSync('/dev/stdin').toString().split('\n')const T = Number(input[0])let A, Bfor (let i = 1; i  다른 풀이들을 참고해보니 내 풀이와 비슷한 풀이들이 많았는데, 그 중에서도 유용하지만 내가 곧잘 떠올리지는 못하는 다중 할당과 map 메소드를 사용한 풀이가 있었다.let input = require('fs').readFileSync('/dev/stdin').toString().split('\n')const T = Number(input[0])for (let i = 1; i  input의 요소의 자료형이 문자열이기 때문에 input[i].split(.. 2024. 10. 4.
시간 관련 유형 백준 2884번, 2525번을 토대로 시간 관련 유형을 간단하게 정리해보고자 한다. 백준 2884번let input = require('fs').readFileSync('/dev/stdin').toString().split(' ')let [H, M] = input.map(Number)M = M - 45if (M  백준 2525번let input = require('fs').readFileSync('/dev/stdin').toString().split('\n')let A = Number(input[0].split(' ')[0])let B = Number(input[0].split(' ')[1])let C = Number(input[1])let b = (B + C) % 60let a = A + Math.fl.. 2024. 10. 3.
백준 2480번 백준 2480번을 풀어보았다.let input = require('fs').readFileSync('/dev/stdin').toString().split(' ')const a = Number(input[0])const b = Number(input[1])const c = Number(input[2])let rewardif (a === b) { if (b === c) reward = 10000 + a * 1000 else reward = 1000 + a * 100} else if (a === c || b === c) { reward = 1000 + c * 100} else { reward = Math.max(a, b, c) * 100}console.log(reward) 같은 눈이 3개인 경우, 2개.. 2024. 10. 2.