본문 바로가기
반응형

알고리즘80

99클럽 코테 스터디 1일차 TIL - 해시 항해99 코테 스터디 1일차 문제인 프로그래머스의 '베스트앨범'은 해시 자료구조를 이용하여 각 장르의 노래들을 최대 2곡씩 베스트 앨범에 수록하는 문제다. 난이도는 레벨3이며 자바의 HashMap을 통해 해결할 수 있다. 오늘의 문제 - 베스트앨범 문제 정보문제 키워드- 해시난이도- Level 3 문제 요약두개의 리스트로 i번째 노래의 장르 이름과, i번째 노래의 재생횟수가 주어진다.베스트앨범은 각 장르별 최대 2곡씩을 아래의 우선순위에 따라 수록하게 된다.많이 재생된 장르 먼저 수록장르별로 최대 2개, 많이 재생된 순서로 수록장르 내에서 재생수가 같으면 고유번호 순서로 수록베스트앨범에 수록된 곡들의 고유번호 리스트를 반환하라. 문제 풀이 과정  Song이라는 이름의 클래스를 만들어 노래의 고유 번호와 .. 2024. 5. 20.
[알고리즘] 그래프 문제에 활용되는 유니온 파인드(union-find) 유니온 파인드 union-find는 여러 노드가 있을 때 두 개의 노드를 연결하여 한 개의 집합으로 묶는 유니온 연산과 두 노드가 같은 집합에 있는지 확인하는 파인드 연산으로 구성된 알고리즘이다. 유니온 파인드의 기본 개념 union 연산 두 노드가 속한 집합을 1개로 합치는 합집합 연산 find 연산 노드가 속한 집합의 대표 노드를 반환하는 연산 유니온 파인드 알고리즘의 동작 과정 1. 유니온 파인드 배열 초기화 ex) 6개의 노드 일반적으로 1차원 배열을 이용해 표현한다. 처음에는 노드가 연결되어 있지 않기 때문에 각 노드가 대표 노드가 된다. 2. 유니온 연산 수행 ex) union(1, 4) 및 union(5, 6) 수행 union(1, 4) 1번의 대표 노드(1번)와 4번의 대표 노드(4번)를 .. 2024. 1. 2.
[Java] 프로그래머스 - 징검다리 건너기 프로그래머스 징검다리 건너기 문제는 카카오 인턴쉽 기출 문제로, 징검다리를 최대 몇명이 건널 수 있는지 구하는 문제다. 난이도는 레벨3이며 이분탐색을 통해 해결할 수 있다. 프로그래머스 - 징검다리 건너기 문제 정보 알고리즘 분류 - 이진탐색 - 슬라이딩 윈도우 난이도 - Level 3 문제 요약 일렬로 놓여있는 징검다리의 디딤돌에는 각각 숫자가 적혀있으며, 한번 밟을 때마다 1씩 줄어듦 디딤돌의 숫자가 0이 되면 더이상 밟을 수 없으며, 가능한 다음 디딤돌로 건너 뛸 수 있음 밟을 수 있는 디딤돌이 여러개인 경우 무조건 가장 가까운 디딤돌로 가야 함 한번에 한명씩 징검다리를 건너는데, 한명이 다 건넌 뒤에 다음 사람 건넘 Q. 징검다리 각 디딤돌의 숫자 및 한번에 건너뛸 수 있는 최대 칸수 k가 주어졌.. 2023. 12. 7.
[Java] 프로그래머스 - 가장 먼 노드 프로그래머스 가장 먼 노드 문제는 그래프의 한 노드에서 가장 멀리 떨어져 있는 노드의 개수를 구하는 문제다. 난이도는 레벨3이며 그래프 탐색를 통해 해결할 수 있다. 프로그래머스 - XX 문제 정보 알고리즘 분류 - 그래프 탐색 난이도 - Level 3 문제 요약 n개의 정점으로 이루어진 그래프가 있다. 1번 노드에서 가장 먼 노드의 개수는? 문제 풀이 과정 1번부터 BFS로 돌면서 다른 노드들까지의 최단거리를 구함 최대 거리를 갖는 노드의 개수를 구함 코드 import java.util.*; class Solution { public int solution(int n, int[][] edge) { int answer = 0; int maxLen = 0; // 주어진 그래프 정보를 연결 리스트로 변환 L.. 2023. 11. 23.
반응형