본문 바로가기

Algorithm/Baekjoon37

백준 2444번 백준 2444번을 풀어보았다.let N = Number(require('fs').readFileSync('/dev/stdin').toString())let output = ''for (let i = 0; i i; j--) { output += ' ' } for (let k = 0; k  위와 같이 규칙을 파악하고 반복문을 사용하여 풀이하였으나 repeat 메소드를 사용하면 더 간단하게 해결할 수 있다. 참고) 백준 25314번, 백준 2675번let N = Number(require('fs').readFileSync('/dev/stdin').toString())let output = ''for (let i = 0; i  💫 이 문제를 통해 배운 것문자열을 반복할 때 repeat 메소드도 떠올.. 2024. 12. 30.
백준 3003번 백준 3003번을 풀어보았다.let input = require('fs').readFileSync('/dev/stdin').toString().split(' ').map(Number)const set = [1, 1, 2, 2, 2, 8]let output = ''for (let i = 0; i  올바른 세트에서 동혁이가 갖고 있는 개수를 뺀 값을 output에 추가해주었다. map 메소드를 사용해서 풀이할 수도 있다.let input = require('fs').readFileSync('/dev/stdin').toString().split(' ').map(Number)const set = [1, 1, 2, 2, 2, 8]input = input.map((value, index) => set[index] .. 2024. 11. 15.
백준 5622번 백준 5622번을 풀어보았다.let words = require('fs').readFileSync('/dev/stdin').toString().trim()let time = 0for (const word of words) { if (word  이 문제의 핵심은 알파벳별로 소요 시간을 구분해야 한다는 것이다. O까지는 3개의 알파벳이 하나의 소요 시간으로 매핑되므로 알파벳의 유니코드값과의 관계를 찾아 소요 시간을 구하였고 그 이후로는 각각 소요 시간이 8, 9, 10인 경우로 처리해주었다. 처음에는 words를 입력받는 문장에 trim 메소드를 사용하지 않았는데 이상하게 계속 틀렸다고 나와서 혹시 몰라 trim 메소드를 사용해보니 그제서야 정답으로 처리되었다. 종종 백준에서 실행 시 입력값 뒤에 \n 등.. 2024. 11. 15.
백준 2908번 백준 2908번을 풀어보았다.let [A, B] = require('fs').readFileSync('/dev/stdin').toString().split(" ")let A_reversed = 0, B_reversed = 0for (let i = 2; i >= 0; i--) { A_reversed += A[i] * (10 ** i) B_reversed += B[i] * (10 ** i)}console.log(A_reversed > B_reversed ? A_reversed : B_reversed) 이 문제는 크게 역순으로 만드는 단계와 출력하는 단계로 구분할 수 있는데, 각 단계별 풀이를 정리해보았다. 역순 만들기 ① 반복문 위와 같이 반복문을 사용해 일의 자리, 십의 자리, 백의 자리를 A_reve.. 2024. 11. 15.
백준 25083번 백준 25083번을 풀어보았다.console.log(" ,r\'\"7")console.log("r`-_ ,\' ,/")console.log(" \\. \". L_r\'")console.log(" `~\\/")console.log(" |")console.log(" |") 비슷한 문제로 백준 10171번, 백준 10172번이 있는데 ' " \ 등의 특수문자를 문자 그 자체로 사용하고자 한다면 \' \" \\ 과 같이 앞에 \를 붙여주면 된다. 처음에는 \가 아닌 /를 사용하는 실수를 했었다.   위 풀이로 정답을 출력하긴 했지만 JavaScript에서 여러 줄의 문자열을 하나의 변수에 저장하고 출력하는 방법도 알아보았다.const output = ` .. 2024. 11. 14.
백준 1152번 백준 1152번을 풀어보았다.let input = require('fs').readFileSync('/dev/stdin').toString().trim()console.log(input.split(' ').length) 분명 문제에 주어진 예제 입력들에 대해선 정답을 출력해내는데 틀렸습니다! 가 나왔다. 알아보니 빈 문자열이 입력으로 들어오는 경우 0을 출력해야 하는데 위 코드는 1을 출력하는 것이 문제였다. 빈 문자열이 입력으로 들어올 경우 input은 [""]이 되고 input.split(' ').length는 1이 된다. 따라서 아래와 같이 입력값이 빈 문자열인 경우가 아닌 경우로 구분해주어야 한다.let input = require('fs').readFileSync('/dev/stdin').toS.. 2024. 11. 8.