본문 바로가기

Preparing Coding Test/Programmers L36

[Java/프로그래머스/해시] Level 3: 베스트앨범 문제 programmers.co.kr/learn/courses/30/lessons/42579 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr 코드 롸... 진짜 너무 어렵잖응ㅁ..ㅠㅠㅠㅠㅠㅠ 어떤 자료구조를 쓸 지 고르는 것이 정말 어려웠다. (근데 이게 핵심임) 순서는 다음과 같다. 1. id(고유번호), play(재생횟수), genre를 담은 Song 객체를 만든다. Song 객체는 ArrayList에 삽입한다. 동시에 각 장르별 play를 합산해 HashMap에 기록해준다. 2. 정렬 3. 정렬된 Ar.. 2020. 12. 6.
[Java/프로그래머스/DFS] Level 3: 단어 변환 문제 programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr 코드 처음 문제를 봤을 때 DFS로 풀 생각도 하지 못했다...ㅎ 풀이 순서는, 1. DFS 함수 present가 target과 같아질 때 마친다. 단, 이 때의 지나쳐 온 단어 개수와 현재 answer를 비교해서 더 작은 것을 answer에 저장한다. 이 외에는 words 배열을 전체적으로 스캔하면서, 이미 확인한 단어인지 &.. 2020. 11. 6.
[Java/프로그래머스/DFS] 여행경로 문제 programmers.co.kr/learn/courses/30/lessons/43164 코딩테스트 연습 - 여행경로 [[ICN, SFO], [ICN, ATL], [SFO, ATL], [ATL, ICN], [ATL,SFO]] [ICN, ATL, ICN, SFO, ATL, SFO] programmers.co.kr 코드 처음엔 인접하는 공항들을 전부 adjacent에 넣어야 하는데 어떻게 해야할까 끙끙댔다. 다행히 tickets는 양방향이 아닌 순서가 있는 것이라, dfs함수의 if문에서 조건을 걸러낼 수 있었다. import java.util.ArrayList; import java.util.Collections; public class Solution { boolean[] visited; //방문한지.. 2020. 11. 5.
[Java/프로그래머스/BFS] 네트워크 문제 programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr 코드 import java.util.*; class Solution { static boolean[] visited; static int cnt; public static void bfs(int start, ArrayList[] adjacent){ Queue q = new LinkedList(); q.offer(start); cnt++; while(!q.isEmpt.. 2020. 10. 29.
[Java/프로그래머스/힙(Heap)] 이중우선순위큐 문제 programmers.co.kr/learn/courses/30/lessons/42628 코딩테스트 연습 - 이중우선순위큐 programmers.co.kr 코드 woovictory.github.io/2018/03/19/JavaCollectionPriorityQueue/ [Java] Priority Queue 이번에는 Priority Queue에 대해서 공부를 해보았습니다. woovictory.github.io 자바의 PriorityQueue는 우선순위가 가장 작은 값을 출력하는 함수만 있기 때문에 이를 어떻게 다뤄서 최댓값을 출력할지 고민해보면 된다. 나는 마지막 원소를 제외한 모든 원소를 ArrayList에 담아놓고, 마지막 원소도 삭제한 뒤에 ArrayList 안의 값들을 다시 pq에 옮겨줬다. .. 2020. 10. 27.
[Java/프로그래머스/힙(Heap)] 디스크 컨트롤러 문제 programmers.co.kr/learn/courses/30/lessons/42627 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를�� programmers.co.kr 해당 유형의 문제들을 코테에서 자주 접하게 된다. 항상 못풀었기에 이번엔 걍 배우는 마음으로 코드를 보기로 참고 velog.io/@sa833591/%EB%94%94%EC%8A%A4%ED%81%AC-%EC%BB%A8%ED%8A%B8%EB%A1%A4%EB%9F%AC%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-Lv.. 2020. 10. 20.