코딩테스트 112

신고 결과 받기 (JS)

https://school.programmers.co.kr/learn/courses/30/lessons/92334 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krfunction solution(id_list, report, k) { const answer = []; const reporterMap = {}; // 각 유저가 신고한 사용자를 저장 const reportedMap = {}; // 각 유저가 신고당한 횟수를 저장 // 초기화: 모든 유저에 대해 빈 배열 및 0으로 설정 id_list.forEach(id => reporterMap[id] = []); id_list..

베스트 앨범 (JS)

https://school.programmers.co.kr/learn/courses/30/lessons/42579 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr// 장르별로 가장 많이 재생된 노래 2개씩// 가장 많이 재생된 장르 -> 장르 내에서 많이 재생된 노래 -> 재생 수 같으면 고유번호 오름차순function solution(genres, plays) { const answer = []; const total = {}; // 각 장르별 총 재생 횟수를 저장할 객체 const summary = {}; // 각 장르별로 노래 정보를 저장할 객체 // 주어진 장르와 재생..

오픈 채팅방 (JS)

https://school.programmers.co.kr/learn/courses/30/lessons/42888?language=javascript 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krfunction solution(record) { const answer = []; const uid = {}; record.forEach(entry => { const [action, id, nickname] = entry.split(' '); if (action === 'Enter' || action === 'Change') { uid[id..

표 편집 (JS)

https://school.programmers.co.kr/learn/courses/30/lessons/81303 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr// 인덱스로 계산하되, 해당 인덱스의 위 아래에 있는 애들로 저장// 각 행을 기준으로 연산이 수행된 후의 위치를 표시// 삭제 시 삭제한 행의 down을 윗 행의 down에, 삭제한 행의 up을 아래 행의 up에 // 복구 시 삭제한 행 값을 삭제한 행 윗 행 down과 아래 행 up에function solution(n, k, cmd) { const deleted = []; // 삭제된 행의 인덱스 저장 const answer = ..

크레인 인형 뽑기 (JS)

https://school.programmers.co.kr/learn/courses/30/lessons/64061 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krfunction solution(board, moves) { let answer = 0; const stack = []; // 계속 다섯번을 돌며 가장 먼저 나오는 수를 뽑아 스택에 넣고 그 자리를 0으로 바꿈 for (const move of moves) { const moveIdx = move-1; // board에 인덱스로 접근하기 위해 1로 빼줌 for (let i=0; i 0) { ..

방문 길이 (JS)

https://school.programmers.co.kr/learn/courses/30/lessons/49994# 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krfunction solution(dirs) { const visited = new Set(); let current = [0, 0]; // U D R L const dr = [1, -1, 0, 0] // row 방향 const dc = [0, 0, 1, -1] // col 방향 dirs.split('').forEach(dir => { let nextRow = current[0]; ..

실패율 (JS)

https://school.programmers.co.kr/learn/courses/30/lessons/42889 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krfunction solution(N, stages) { const users = stages.length; const stage = {}; // 각 스테이지별 실패율 계산 for (let i=1; i num >= i).length; // 도전한 사람 수 const failed = stages.filter(num => num === i).length; // 클리어하지 못한 사람 수 ..

최소직사각형 (JS)

https://school.programmers.co.kr/learn/courses/30/lessons/86491 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krfunction solution(sizes) { const maxLen = Math.max(...sizes.flat()); let minLen = 0; sizes.forEach(size => { minLen = Math.max(minLen, Math.min(size[0], size[1])); }) return maxLen*minLen;} 가장 먼저 flat을 사용..

소수 찾기 (JS)

https://school.programmers.co.kr/learn/courses/30/lessons/42839?language=javascript 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krfunction solution(numbers) { let answer = []; const nums = numbers.split('').map(Number); // 순서가 있으므로 순열 const getPermutations = (arr, selectNum) => { const results = []; if (sel..