전체 글

문제 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 (i 0 ? 0 : 1;}추가// 고쳐 바꾸기let s = "aabcbcdabcabacabcababc";let t = "abc";function solution(s, t) { s = s.split(""); const pattern = t.split(""); let i = 0; let answe..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. 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..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 indexOf()를 썼을 때 시간 초과가 떴다. indexOf()는 찾는 요소를 배열의 인덱스 0부터 차례대로 확인해나가기 때문에 대부분의 경우 상당한 시간을 요구하기 때문이다. 이를 대체하기 위한 수단으로 players를 객체 playersObj로 변형시켰다. 이때 key는 참가자 이름, value는 등수이다. 그리고 callings에 속한 참가자 이름을 playersObj에서 찾아 현재 등수를 찾고, players에서 현재 참가자 이름, 그 바로 앞 등수였던 참가자 이름을 교체한다. 또한 pla..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 // 날짜 데이터에 월 더하기 let today = "2019.01.05"; today = new Date(today); const todayPlus6Month = new Date(today.setMonth(today.getMonth() + 6)); console.log(todayPlus6Month); // 2019-07-04T15:00:00.000Z 정답 function solution(today, terms, privacies) { let answer = []; // 개인정보 수집일과 각각의 약..
카버
카버의 코딩일기