Misc 🗿/Problem Solving5 [프로그래머스] 알고리즘 고득점 kit - 올바른 괄호 (Stack/Queue) 문제링크: https://school.programmers.co.kr/learn/courses/30/lessons/12909 • "(" 로 열렸으면 반드시 짝지어서 ")" 로 닫혀야 올바른 괄호 • 여기서 "( ) ( ( )" 와 "( ) ( ) ) ) ( )" 는 올바르지 않은 괄호 • 들어온 문자가 "(" 일 경우 저장소에 넣었다가 • 들어온 문자가 ")" 일 경우 저장소에 있는 "(" 와 짝짓기 • 이때 가장 마지막 즉, 최신의 "(" 와 비교하므로 후입선출의 구조 • 후입선출을 최대한 활용할 수 있는 Stack 생성 • 저장소에 "(" 가 존재하지 않을 경우에 ")" 가 들어올 경우에 대한 에러처리 • startsWith, endsWith 를 활용하여 1차 관문을 생성할 수 있지만 •.. 2024. 2. 7. [프로그래머스] 알고리즘 고득점 kit - 기능개발 (Stack/Queue) 문제링크: https://school.programmers.co.kr/learn/courses/30/lessons/42586 • 하루에 한 번만 이루어지는 배포 • 작업의 개발 속도가 적힌 정수 배열 speeds • 작업의 진도가 적힌 정수 배열 progressess • 뒤에 있는 기능이 먼저 개발되더라도, 앞에 있는 기능이 배포될 때 같이 배포 • 각 배포마다 몇 개의 기능이 배포되는지 파악하는 것이 목표 • 절대적으로 선입선출을 지키기 위한 Queue 생성 • 매일 배포되는 기능의 개수를 담을 ArrayList 생성 (배열에 바로 담을 수 없는 이유: 크기를 알지 못해서) • Queue 에 담긴 작업이 100 달성시 poll • poll 한 데이터의 개수를 ArrayList 에 담기 • ArrayLi.. 2024. 1. 30. [프로그래머스] 알고리즘 고득점 kit - 의상 (Hash) 문제링크: https://school.programmers.co.kr/learn/courses/30/lessons/42578 • 코니는 최소 한 개의 의상은 입는다 • 코니는 카테고리당 최대 1가지 의상만 착용할 수 있다 • 한 가지의 의상이라도 다를 경우 다른 착장으로 계산한다 • 카테고리를 key 로 가지는 HashMap 을 생성 • 각 카테고리에 의상 갯수를 value 값으로 넣기 간단한 경우의 수를 구하는 로직 구현 예) 상의 2개, 하의 3개일 경우 2 X 3 = 6 • 아무 의상도 선택하지 않는 경우 • 특정 카테고리에서 선택을 하나도 안 하는 경우 1단계 카테고리별로 의상들을 담을 HashMap 을 생성 각 카테고리마다 의상들의 갯수를 순차적으로 대입 (신규 카테고리일 경우 0으로 초기화 후.. 2024. 1. 18. [프로그래머스] 알고리즘 고득점 kit - 베스트앨범 (Hash) 문제링크: https://school.programmers.co.kr/learn/courses/30/lessons/42579 기본 조건: 각 장르당 두 개의 노래를 수록한다 1st. 속한 노래가 많이 재생된 장르를 먼저 수록한다 2nd. 장르 내에서 많이 재생된 노래를 먼저 수록한다 3rd. 장르 내에서 재생 횟수가 같을 경우, 고유 번호가 낮은 순으로 수록한다 • 장르의 종류는 100개 미만 • 모든 장르는 재생 횟수가 다름 • genres[i]는 고유번호가 i 인 노래의 장르 • plays[i]는 고유번호가 i 인 노래의 재생 횟수 • 장르에 수록된 곡이 하나라면, 하나의 곡만 선택 • genres 와 plays 배열은 1:1 매칭 구조이며 범위는 1 ~ 10,000 genres plays retur.. 2024. 1. 11. [프로그래머스] 알고리즘 고득점 kit - 여행경로 (DFS) 문제링크: https://school.programmers.co.kr/learn/courses/30/lessons/43164 DFS(Depth First Search)를 선택한 이유 모든 항공권을 사용해야 하므로 백트래킹을 지원하고, 가능한 모든 경로를 고려하면서 끝까지 탐색하는 DFS 가 더 적합하다고 판단 트리가 아닌 그래프 구현을 선택한 이유 1. 하나의 공항에서 여러 다른 공항으로 갈 수도, a[1].compareTo(b[1])); // 시작 전 정렬(알파벳 순) dfs("ICN", "ICN", tickets, 0, vistedFlag, possibleRoutes); // ICN에서 시작하는 DFS Collections.sort(possibleRoutes); // 알파벳 순 정렬 return po.. 2023. 12. 12. 이전 1 다음 728x90 반응형