본문 바로가기

알고리즘20

[프로그래머스] 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/1844구현상대 팀 진영에 빠르게 도착하는 방법 = 최단 거리 구하기 = BFS- 상하좌우로 이동 가능, 벽이 있는 자리(0)로는 이동 불가능- 게임 맵 좌측 상단인 (1,1) -> 배열 인덱스로 표현하면(0,0)에서 시작, 상대방은 게임 맵 우측 하단(n,m)-> 배열 인덱스로 표현하면 (n-1, m-1) 에 있음- 벽에 가로막혀 상대 팀 진영에 도착할 수 없을 때는 -1 return 1. queue를 활용하여 (0,0)부터 탐색을 시작한다. dist를 통해 이동거리를 저장한다.2. 상,하,좌,우를 확인하고, 1이라면 queue에 넣는다. (dist+1)3. 방문한 .. 2025. 2. 4.
[프로그래머스] 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.