Algorithm/Baekjoon37 백준 2745번 백준 2745번을 풀어보았다. 크게 3가지 풀이로 정리할 수 있다.0~9, A~Z로 케이스 구분 후 계산parseInt 메소드reverse 메소드 1. 0~9, A~Z로 케이스 구분 후 계산 이때 0~9, A~Z로 케이스를 구분하는 방법에 따라 크게 3가지로 구분할 수 있다. 1-1. isNaN 메소드let [N, B] = require('fs').readFileSync('/dev/stdin').toString().split(' ')B = Number(B)let decimal = 0, exponent = 0for (let i = N.length - 1; i >= 0; i--) { let value = 0 if (isNaN(N[i])) value = N[i].charCodeAt() - 55 else .. 2025. 1. 2. 백준 2563번 백준 2563번을 풀어보았다. 처음 풀었을 때는 지나치게 수학적으로만 접근하려고 해서 엄청 헤맸던 문제인데, 색종이가 붙은 격자는 1, 붙지 않은 격자는 0으로 한 뒤 1의 개수만 구하면 된다.let [N, ...input] = require('fs').readFileSync('/dev/stdin').toString().split('\n').map((value) => value.trim())N = Number(N)input = input.map((value) => value.split(' ').map(Number))let board = new Array(100).fill(null).map(() => new Array(100).fill(0));for (let i = 0; i { r.forEach((c).. 2025. 1. 2. 백준 10798번 백준 10798번을 풀어보았다. 간단한 문제지만 특정 열에 문자가 존재하는지 여부를 다양하게 확인할 수 있었다. 1. input[r]의 길이로 확인let input = require('fs').readFileSync('/dev/stdin').toString().split('\n').map((value) => value.trim())let output = ''for (let c = 0; c 2. input[r]의 특정 열의 값으로 확인let input = require('fs').readFileSync('/dev/stdin').toString().split('\n').map((value) => value.trim())let output = ''for (let c = 0; c 이때 if (input[r].. 2025. 1. 1. 백준 2566번 백준 2566번을 풀어보았다. 다양한 풀이가 있겠지만 크게 다음으로 구분할 수 있다.입력값을 2차원 배열로 받기반복하며 비교하기 (반복문, forEach)Math.max 메소드 사용하기입력값을 1차원 배열로 받기반복하며 비교하기 (반복문, forEach)Math.max 메소드 사용하기reduce 메소드 사용하기1. 입력값을 2차원 배열로 받기 1-1. 반복하며 비교하기 ① 반복문let input = require('fs').readFileSync('example.txt').toString().split('\n').map((value) => value.trim().split(' ').map(Number))console.log(input)let max = -1, row = 0, column = 0for (l.. 2025. 1. 1. 백준 2738번 백준 2738번을 풀어보았다.let [NM, ...input] = require('fs').readFileSync('/dev/stdin').toString().split('\n')let [N, M] = NM.split(' ').map(Number)input = input.map((value) => value.trim().split(' ').map(Number))let output = ''for (let i = 0; i 결국 해결하긴 했지만 얼렁뚱땅 풀다보니 시행착오를 많이 겪었다. 1. 자료형에 유의하자. 처음에는 위 코드의 두 번째 줄과 세 번째 줄을 아래와 같이 작성하였고let [N, M] = NM.split(' ')input = input.map((value) => value.trim().spli.. 2024. 12. 30. 백준 10988번 백준 10988번을 풀어보았다.let input = require('fs').readFileSync('/dev/stdin').toString().trim()input === input.split('').reverse().join('') ? console.log(1) : console.log(0) split, reverse, join 메소드를 사용하면 간단하게 해결할 수 있다.split(separator): 문자열을 지정한 구분자를 기준으로 나눈다.reverse(): 배열의 순서를 반전한다.참고) 백준 10811번, 백준 2908번join(separator): 배열의 모든 요소를 지정한 구분자로 연결하여 하나의 문자열을 만든다. 그러나 메소드를 사용하지 않고 문자열의 시작과 끝을 순서대로 비교해서도 해결할.. 2024. 12. 30. 이전 1 2 3 4 ··· 7 다음