전체 글

문제 10798번: 세로읽기 총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’ www.acmicpc.net 정답 const fs = require("fs"); const filePath = process.platform === "linux" ? "/dev/stdin" : "test.txt"; const input = fs .readFileSync(filePath) .toString() .split("\n") .map(_ => _.split("")); // 배열에서 가장 긴 문자열의 길이 구하기 const maxStrNum = Math.max.apply( n..
문제 2738번: 행렬 덧셈 첫째 줄에 행렬의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 차례대로 주어진다. 이어서 N개의 줄에 행렬 B의 원소 M개가 차례대로 주어진다. N과 M은 100보다 작거나 같 www.acmicpc.net 정답 const fs = require("fs"); const filePath = process.platform === "linux" ? "/dev/stdin" : "test.txt"; const input = fs .readFileSync(filePath) .toString() .split("\n") .map(str => str.split(" ").map(Number)); // 첫 번째 행을 A, B의 행렬 크기를 알려주는 변수로 따로 빼기..
문제 2720번: 세탁소 사장 동혁 각 테스트케이스에 대해 필요한 쿼터의 개수, 다임의 개수, 니켈의 개수, 페니의 개수를 공백으로 구분하여 출력한다. www.acmicpc.net 정답 let fs = require("fs"); let filePath = process.platform === "linux" ? "/dev/stdin" : "test.txt"; let changes = fs.readFileSync(filePath).toString().trim().split("\n").map(Number); // 동전을 센트 단위로 바꿔 배열화한다 const quarter = 25; const dime = 10; const nickel = 5; const penny = 1; const coinArr = [qu..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 reduce 함수를 이용해 차례대로 한 쌍씩 최소공배수를 구해 결괏값을 누적시킨다. 최소공배수는 대상이 되는 한 쌍의 값을 곱한 뒤, 최대공약수로 나눈 값이다. 정답 function solution(arr) { function gcd(a, b) { if (b === 0) { return a; } else { return gcd(b, a % b); } } function lcm(a, b) { return (a * b) / gcd(a, b); } const answer = arr.reduce((acc,..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 stack 이용해서 푸는 기본 문제라 숙지해두면 좋을 듯하다. 정답 function solution(s) { s = s.split(""); let i = 0; let stack = []; while (true) { if (i 0 ? 0 : 1; }
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 function solution(n) { const regex = /1/g; const zeroCount = n.toString(2).match(regex).length; while (true) { n++; const newZeroCount = n.toString(2).match(regex).length; if (zeroCount === newZeroCount) { break; } } return n; }
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 function solution(friends, gifts) { const giftsSign = {}; const giftsList = {}; friends.forEach(friend => { giftsSign[friend] = 0; giftsList[friend] = []; }); gifts.forEach(gift => { const [giver, taker] = gift.split(" "); giftsSign[giver] += 1; giftsSign[taker] -= 1; giftsList[gi..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 function solution(bandage, health, attacks) { const maxHealth = health; const totalSeconds = attacks[attacks.length - 1][0]; const attacksArr = new Array(attacks.length).fill(0); attacks.forEach(attack => { const seconds = attack[0]; const damages = attack[1]; attacksArr[seconds] ..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 Object.entries()를 사용할 때 예시 1보다 예시 2처럼 코드를 작성하는 편이 가독성이 더 높다. // 예시 1: Object.entries()로 객체를 배열 형태로 변형해서 사용한다 blockedUserObj = Object.entries(blockedUserObj); blockedUserObj.forEach(user => { const blockedUser = user[0]; const reportedCount = user[1]; if (reportedCount >= k) blocke..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 function solution(park, routes) { // S의 현재 좌표를 확인한다 // 공원의 영역을 벗어나지 않고 이동 경로에 장애물이 없는 경우: // routes에 따라 S의 좌표를 옮긴다 let sPosition = undefined; const park2 = park.map(item => { return item.split(""); }); const routes2 = routes.map(item => { const tmp = item.split(" "); return [tmp[0..
카버
카버의 코딩일기