본문 바로가기

알고리즘12

[백준] 1158번 : 요세푸스 문제 (실버 4) - Javascript 풀이 문제 링크https://www.acmicpc.net/problem/1158 풀이const fs = require('node:fs');const input = fs.readFileSync('예제.txt','utf8').split(' '); // 백준 경로:'/dev/stdin'const [n, k] = input.map(Number);const circle = [];const result = [];for(let i=1;i0){ remove = (remove + k-1) % circle.length; result.push(circle.splice(remove,1)[0]);}console.log(``); 2025. 2. 11.
[프로그래머스] Lv 2. 올바른 괄호 - Javascript 풀이 💡 유형: 스택/큐 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/12909 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 구현 및 풀이1. 첫 문자가 '('이면, 남은 문자열 중 ')'가 있는지 확인한다. 따라서 '('를 제거하고 남은 문자열을 확인한다.2. 있으면 그 문자')' 도 제거한다. 3. 모든 문자가 제거되면 true를 리턴한다.4. 문자가 남아있으면 false를 리턴한다. ➡️ 정확성: 통과 / 효율성: 실패 (시간초과)function solution(s) { const arr = [...s]; while.. 2025. 2. 7.
[프로그래머스] Lv 2. 기능 개발 - Javascript 풀이 💡 유형: 스택/큐 문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 구현- 각 기능의 개발속도는 모두 다르다.- 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포된다.- progresses: 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열- speeds: 각 작업의 개발 속도가 적힌 정수 배열- 구하는 것: 각 배포마다 몇 개의 기능이 배포되는지 1. 각 작업마다 100%까지 작업량을 구하여 큐(days)에 삽입한다.2. 첫 번째 작업이 완료될 때, 같이 배포할.. 2025. 2. 5.
[프로그래머스] Lv 2. 타켓 넘버 - Javascript 풀이 💡 유형: DFS/BFS 문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 구현주어진 숫자를 적절히 더하고 빼서 타켓 넘버를 만드는 방법의 수-> 주어진 숫자를 모든 경우의 수로 조합하고, 그 값 === target이면 답에 +1각 숫자에는 +, - 두 가지 경우가 존재한다.각 숫자마다 두 가지 경우 중 하나를 선택하고, 또 두 가지 경우 중 하나를 선택하는 것을 반복 => DFS풀이function solution(numbers, target) { let count = 0; .. 2025. 1. 30.
[프로그래머스] Lv 2. 의상 - Javascript 풀이 💡 유형 : 해시 문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 구현하루에 최소 한 개의 의상을 입을 때, 서로 다른 옷의 조합 수clothes: [의상의 이름, 의상의 종류] 2차원 배열각 종류 당 하나의 옷 고를 수 있음 1. 1개의 의상을 입는 경우: 행의 개수(clothes.length)2. 2개 이상의 의상을 입는 경우: 의상의 종류를 보고 고름 => 같은 종류끼리 모아야한다. 따라서 객체를 만들어 종류를 키로 사용. 이때 개수만 사용하면 된다. 풀이function so.. 2025. 1. 28.
[프로그래머스] Lv 2. 전화번호 목록 - Javascript 풀이 💡 유형: 해시 문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 구현어떤 번호가 다른 번호의 접두어인 경우가 있으면 false, 아니면 true접두어 => 포함하고 있고, 인덱스가 0이여야함 1. phone_book을 순회하면서, 한 번호가 다른 번호들에 포함되는지 확인한다.2. 포함된다면, 인덱스가 0인지 확인한다. => 이렇게 생각했는데 MDN 문서를 보니 startsWith() 라는 메서드가 있었다! 풀이function solution(phone_book) { //길이가.. 2025. 1. 26.