본문 바로가기

WorkOut/JavaScript34

Baek Joon 코딩 테스트 input 값 입력받기기본적으로 익숙한 ESModule 방식을 지원하지 않으므로 CommonJS 방식으로 파일을 입력 받아야한다.import fs from 'fs';는 사용할 수 없다.require('fs').readFileSync('/dev/stdin')node solution.js const fs = require('fs');const input = fs.readFileSync(0, 'utf8').trim().split(/\s+/);이후에 작성하는 .trim().split(/\s+/) 은 양쪽 공백을 없애고 공백 별로 스플릿하게 되므로 오류가 가장 적다고 할 수 있다. GitHub - mors119/baekjoonCodingTestContribute to mors119/baekjoonCodingTes.. 2025. 11. 29.
Day33: OX퀴즈, 최빈값 구하기, 안전지대 OX퀴즈덧셈, 뺄셈 수식들이 'X [연산자] Y = Z' 형태로 들어있는 문자열 배열 quiz가 매개변수로 주어집니다. 수식이 옳다면 "O"를 틀리다면 "X"를 순서대로 담은 배열을 return하도록 solution 함수를 완성해주세요.function solution(quiz) { let arr = [] let q = [] for(let i = 0; i isNaN(v) ? v : Number(v)) if(q[1] === '+') q[0] + q[2] === q[4] ? arr.push('O') : arr.push('X') if(q[1] === '-') q[0] - q[2] === q[4] ? arr.push('O') : arr.push('X') } r.. 2025. 10. 12.
Day32: 등수 매기기, 저주의 숫자 3, 문자열 막기, 유한소수 판별하기, 특이한 정렬 등수 매기기영어 점수와 수학 점수의 평균 점수를 기준으로 학생들의 등수를 매기려고 합니다. 영어 점수와 수학 점수를 담은 2차원 정수 배열 score가 주어질 때, 영어 점수와 수학 점수의 평균을 기준으로 매긴 등수를 담은 배열을 return하도록 solution 함수를 완성해주세요.function solution(score) { let a = score.map(v => (v[0] + v[1]) / 2).sort((a, b) => b - a) return score.map(v => (v[0] + v[1]) / 2).map((v, i) => v = a.indexOf(v) + 1)}다른 답:function solution(score) { return score.map((el) => { re.. 2025. 10. 1.
Day31: 캐릭터의 좌표, 외계어 사전, 로그인 성공?, 직사각형 넓이 구하기, 치킨 쿠폰 캐릭터의 좌표머쓱이는 RPG게임을 하고 있습니다. 게임에는 up, down, left, right 방향키가 있으며 각 키를 누르면 위, 아래, 왼쪽, 오른쪽으로 한 칸씩 이동합니다. 예를 들어 [0,0]에서 up을 누른다면 캐릭터의 좌표는 [0, 1], down을 누른다면 [0, -1], left를 누른다면 [-1, 0], right를 누른다면 [1, 0]입니다. 머쓱이가 입력한 방향키의 배열 keyinput와 맵의 크기 board이 매개변수로 주어집니다. 캐릭터는 항상 [0,0]에서 시작할 때 키 입력이 모두 끝난 뒤에 캐릭터의 좌표 [x, y]를 return하도록 solution 함수를 완성해주세요.[0, 0]은 board의 정 중앙에 위치합니다. 예를 들어 board의 가로 크기가 9라면 캐릭터는 .. 2025. 9. 25.
Day30: 문자열 계산하기, 공 던지기, 이진수 더하기, 영어가 싫어요, 구슬을 나누는 경우의 수 문자열 계산하기my_string은 "3 + 5"처럼 문자열로 된 수식입니다. 문자열 my_string이 매개변수로 주어질 때, 수식을 계산한 값을 return 하는 solution 함수를 완성해주세요.function solution(my_string) { let s = my_string.split(' ') let a = Number(s[0]) for(let i = 1; i 다른 답:eval을 사용해서 my_string을 계산할 수 있지만 보안 상 취약점이 될 수 있다.const solution = eval공 던지기머쓱이는 친구들과 동그랗게 서서 공 던지기 게임을 하고 있습니다. 공은 1번부터 던지며 오른쪽으로 한 명을 건너뛰고 그다음 사람에게만 던질 수 있습니다. 친구들의 번호가 들어있는.. 2025. 9. 23.
Day29: 종이 자르기, 가까운 수, 컨트롤 제트, 잘라서 배열로 저장하기, 소인수분해 종이 자르기머쓱이는 큰 종이를 1 x 1 크기로 자르려고 합니다. 예를 들어 2 x 2 크기의 종이를 1 x 1 크기로 자르려면 최소 가위질 세 번이 필요합니다.정수 M, N이 매개변수로 주어질 때, M x N 크기의 종이를 최소로 가위질 해야하는 횟수를 return 하도록 solution 함수를 완성해보세요.function solution(M, N) { let c = 0 for(let i = 0; i 다른 답:function solution(M, N) { return M*N-1;}가까운 수정수 배열 array와 정수 n이 매개변수로 주어질 때, array에 들어있는 정수 중 n과 가장 가까운 수를 return 하도록 solution 함수를 완성해주세요.function solution(.. 2025. 9. 22.
Day28: 한 번만 등장한 문자, 7의 개수, 숨어있는 숫자의 덧셈 (2), 진료 순서 정하기, 팩토리얼 한 번만 등장한 문자문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다.function solution(s) { let s1 = [...new Set(s)] let o = s1.map(v => [v, 0]) s.split('').forEach(v => o.forEach(ov => ov[0] === v ? ov[1] += 1 : '')) return o.filter(v => v[1] === 1).flatMap(v => v[0]).sort().join('')}다른 답:function solution(s) { let.. 2025. 9. 21.
Day27: 중복된 문자 제거, 모스부호 (1), 2차원으로 만들기, A로 B 만들기, k의 개수 중복된 문자 제거문자열 my_string이 매개변수로 주어집니다. my_string에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 return하도록 solution 함수를 완성해주세요.function solution(my_string) { let arr = [] my_string.split('').forEach(v => !arr.includes(v) && arr.push(v) ) return arr.join('')}다른 답:function solution(my_string) { return [...new Set(my_string)].join('');}모스부호 (1)머쓱이는 친구에게 모스부호를 이용한 편지를 받았습니다. 그냥은 읽을 수 없어 이를 해독하는 프로그램을 만들려고 .. 2025. 9. 20.
Day26: 숫자 찾기, 외계행성의 나이, 배열 회전 시키기, 369게임, 합성수 찾기 숫자 찾기정수 num과 k가 매개변수로 주어질 때, num을 이루는 숫자 중에 k가 있으면 num의 그 숫자가 있는 자리 수를 return하고 없으면 -1을 return 하도록 solution 함수를 완성해보세요.function solution(num, k) { let n = String(num).indexOf(k) + 1 return n > 0 ? n : -1}다른 답:function solution(num, k) { return ("❤" + num).indexOf(k);}외계행성의 나이우주여행을 하던 머쓱이는 엔진 고장으로 PROGRAMMERS-962 행성에 불시착하게 됐습니다. 입국심사에서 나이를 말해야 하는데, PROGRAMMERS-962 행성에서는 나이를 알파벳으로 말하고 있습니.. 2025. 9. 19.