본문 바로가기

Java27

[Java][Programmers][고득점 Kit ] Hash (완주하지 못한 선수, 전화번호 목록, 위장, 베스트앨범) 프로그래머스 고득점 Kit에 있는 해시 문제는 총 4개이다. 모두 key - value 쌍을 활용하면 풀기 쉬워지는데 자주 사용하는 것은 Collections을 이용한 sort , getOrDefault를 이용한 값 추가이다. 완주하지 못한 선수 (Level1) - getOrDefault만 잘 사용하면 쉽게 풀리는 문제. import java.util.*; class Solution { public String solution(String[] participant, String[] completion) { String answer = ""; HashMap hm = new HashMap(); for (String player : participant) hm.put(player, hm.getOrDefault.. 2021. 5. 16.
[SWEA][Java][모의 SW][DFS] 1949 - 등산로 조성 등산로를 조성하려고 한다. 등산로를 만들기 위한 부지는 N * N 크기를 가지고 있으며, 이곳에 최대한 긴 등산로를 만들 계획이다. 등산로 부지는 아래 [Fig. 1]과 같이 숫자가 표시된 지도로 주어지며, 각 숫자는 지형의 높이를 나타낸다. 등산로를 만드는 규칙은 다음과 같다. ① 등산로는 가장 높은 봉우리에서 시작해야 한다. ② 등산로는 산으로 올라갈 수 있도록 반드시 높은 지형에서 낮은 지형으로 가로 또는 세로 방향으로 연결이 되어야 한다. 즉, 높이가 같은 곳 혹은 낮은 지형이나, 대각선 방향의 연결은 불가능하다. ③ 긴 등산로를 만들기 위해 딱 한 곳을 정해서 최대 K 깊이만큼 지형을 깎는 공사를 할 수 있다. N * N 크기의 지도가 주어지고, 최대 공사 가능 깊이 K가 주어진다. 이때 만들 .. 2021. 4. 16.
[SWEA][Java][모의 SW][DFS] 2105 - 디저트 카페 친구들과 디저트 카페 투어를 할 계획이다. [Fig. 1]과 같이 한 변의 길이가 N인 정사각형 모양을 가진 지역에 디저트 카페가 모여 있다. 원 안의 숫자는 해당 디저트 카페에서 팔고 있는 디저트의 종류를 의미하고 카페들 사이에는 대각선 방향으로 움직일 수 있는 길들이 있다. 디저트 카페 투어는 어느 한 카페에서 출발하여 [Fig. 2]와 같이 대각선 방향으로 움직이고 사각형 모양을 그리며 출발한 카페로 돌아와야 한다. 디저트 카페 투어를 하는 도중 해당 지역을 벗어나면 안 된다. 또한, 친구들은 같은 종류의 디저트를 다시 먹는 것을 싫어한다. 즉, [Fig. 3]과 같이 카페 투어 중에 같은 숫자의 디저트를 팔고 있는 카페가 있으면 안 된다. [Fig. 4]와 같이 하나의 카페에서 디저트를 먹는 것도.. 2021. 4. 16.
[SWEA][Java][D4][최소 신장 트리,크루스칼] 1251 - 하나로 swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV15StKqAQkCFAYD SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 이 문제는 전형적인 최소 신장 트리 문제이다. 최소 신장 트리 문제를 해결하는 방법은 크루스칼, 프롬 알고리즘이 있다. 해당 문제는 크루스칼로 접근해서 풀었고 크루스칼로 풀기 위해서는 Union 파인드를 알아야 한다. 유니온 파인드란 해당 부모를 찾아 부모가 같은지 확인하는 것이고 이는 그래프가 순환되는 트리로 연결되는지 확인할 때 사용된다. 크루스칼은 가중치가 낮은 순으로 연결하면서 순환 트리로 연결.. 2021. 3. 29.