본문 바로가기

Algorithm/Baekjoon37

백준 5597번 백준 5597번을 풀어보았다.let input = require('fs').readFileSync('/dev/stdin').toString().split('\n').map((i) => Number(i))let student = []for (let i = 1; i a - b)student.forEach((value) => console.log(value)) student 배열에 1~30을 추가한 뒤 input 배열과 student 배열을 비교해 input 배열에 존재하는 값은 student 배열에서 제거한다. 결과적으로 student 배열에는 input 배열에 존재하지 않는, 즉 과제를 제출하지 않은 학생의 번호만 남게 된다. 결과는 올바르게 출력하지만 student 배열에 값을 애써 추가하고 다시 삭제.. 2024. 10. 29.
백준 10810번, 10813번 백준 10810번을 풀고 기존 풀이를 개선할 수 있는 부분이 있어 정리해보고자 한다.let [NM, ...input] = require('fs').readFileSync('/dev/stdin').toString().split('\n')const N = NM.split(' ').map(Number)[0]const M = NM.split(' ').map(Number)[1]let basket = []for (let i = 0; i  1. Array 객체의 fill 메소드// let basket = []// for (let i = 0; i basket 배열에 0을 채우기 위해 반복문을 사용하였는데 fill 메소드를 사용하면 한 줄로 처리할 수 있다.  2. 다중 할당// const m = input[i].spl.. 2024. 10. 10.
백준 10818번 백준 10818번을 토대로 주어진 숫자들의 최대, 최소를 구하는 방법을 정리해보려고 한다. 1. min을 주어진 범위의 최댓값으로, max를 주어진 범위의 최솟값으로 설정let [N, numbers] = require('fs').readFileSync('/dev/stdin').toString().split('\n')numbers = numbers.split(' ').map(Number)let max = -1000000let min = 1000000for (const number of numbers) { if (max  주어진 조건에 따르면 각 정수는 -1,000,000 이상, 1,000,000 이하이므로 min을 1,000,000으로, max를 -1,000,000으로 초기화하였다. 2. Math 객체의.. 2024. 10. 10.
백준 10951번 백준 10951번을 풀어보았다. A+B 유형에 EOF라는 조건이 붙어 기존 문제들과 많이 다를 줄 알았는데 크게 다를 건 없었다.let input = require('fs').readFileSync('/dev/stdin').toString().split('\n')let output = ''for (let i = 0; i  당연히 맞을 거라 생각하고 위 코드를 제출했는데 틀렸다고 나왔다. 아무리 고민해도 어디가 잘못된 건지 모르겠어서 관련하여 찾아보던 중 백준 질문글을 보게되었다. 나와 같은 문제를 겪고 있는 사람이 있었고, 다행히 내 코드의 문제라기보다 백준 테스트 케이스의 문제인 것 같았다. 테스트 케이스 중 마지막 부분에 \n이 하나 더 추가된 테스트 케이스가 있었나보다. 테스트 케이스의 마지막 \n.. 2024. 10. 9.
백준 10871번 백준 10871번을 반복문을 사용하여 풀어보았다.let input = require('fs').readFileSync('/dev/stdin').toString().split('\n')const N = Number(input[0].split(' ')[0])const X = Number(input[0].split(' ')[1])let output = ''for (let i = 0; i  정답은 올바르게 출력해내지만 시간 초과가 떴다. 그래서 메소드를 사용하여 풀어봤고, 다행히 통과했다.let input = require('fs').readFileSync('/dev/stdin').toString().split('\n')input[1].split(' ') .filter((value) => value outp.. 2024. 10. 9.
백준 10952번 백준 10952번을 풀어보았다. 이러한 형태의 조건의 경우 for문보다는 while문을 쓰는 것이 더 적절하지만 while문 풀이가 바로 생각나지 않아 먼저 for문을 사용해 풀어보았다.let input = require('fs').readFileSync('/dev/stdin').toString().split('\n')let output = ''for (let i = 0; i  그러나 이 풀이는 다음의 미흡한 부분이 있다.반복 종료가 0 0 입력으로 이루어진다는 조건을 사용하지 않고 반복 종료의 조건을 i === input.length로 설정한 것a === 0 && b === 0으로 조건을 활용하는 듯 보이나, 사실 이는 i 즉, for문으로는 input의 길이를 반복 종료의 조건으로 설정하는 것이 더 .. 2024. 10. 7.