Home

[프로그래머스] Level3 - 추석 트래픽

> 문제 문제 : [추석 트래픽] > 문제풀이 응답완료시간이 오름차순으로 이미 정렬되어있기 때문에, 순서대로 데이터의 (응답완료시간 + 1000ms) < 각각 (데이터의 처리시작시간)을 만족하면 cnt++ 해주었다. class Solution { public int solution(String[] lines) { int[][] times = new int[lines.length][2]; String[] input = null; int max = -1; for(int i=0; i<l...

Read more

[프로그래머스] Level4 - 지형 이동

> 문제 문제 : [지형이동] > 문제풀이 BFS + Kruskal 사용. height로 구역을 index로 번호매김하여 구분해주었고(BFS), height보다 큰 경계선을 PriorityQueue에 경계값 오름차순으로 넣어주었다(Kruskal). 소스는 다음과 같다. package level4; import java.util.*; public class Solution_지형이동 { static class Pos{ int x,y; Pos(int x, int y){ this.x = x; this...

Read more

[프로그래머스] Level3 - 섬 연결하기

> 문제 문제 : [섬 연결하기] > 문제풀이 Kruskal로 풀이 하였다. 간선들의 가중치를 오름차순으로 정렬하는데 우선순위큐(PriorityQueue)를 사용하였다. Union-find 메소드를 구현하여, 부모값이 다르면 연결(union)해주고, 가중치를 더해갔다. import java.util.*; class Solution { static class Conn implements Comparable<Conn> { int a,b,v; public Conn(int a, int b, int v){ ...

Read more

[프로그래머스] Level4 - 호텔 방 배정

> 문제 2019 카카오 겨울 인턴십 문제 문제 : [호텔 방 배정] > 문제풀이 union-find(disjoint set)로 풀었다. 문제풀다가 한번 나올때쯤 됐다했는데 딱 나왔다. 기존에 배열을 활용한 union-find는 제한사항에서 배열의 크기를(10^12) 수렴할 수 없기 때문에 Map을 활용하였다. Map에 해당 값이 없으면 갱신해주고, 앞/뒤로 값이 있는지 체크해서, 큰값으로 union처리 해주었다. 값이 있다면 그보다 큰 값에 갱신해주고, 갱신한 값보다 큰값이 있는지 체크해서 union처리 해주었다. import java.util.*; class S...

Read more

[프로그래머스] Level3 - 입국심사

> 문제 문제 : [입국심사] > 문제풀이 이진탐색으로 풀었다. class Solution { static public long solution(int n, int[] times) { long left = 0; long right = Long.MAX_VALUE; long mid = 0; while(left <= right){ mid = (left+right)/2; if(check(n,mid,times)){ right = mid - 1; ...

Read more

[프로그래머스] Level3 - 징검다리 건너기

> 문제 2019 카카오 겨울 인턴십 문제 문제 : [징검다리 건너기] > 문제풀이 스톤배열을 활용하여 중복제거 및 오름차순 정렬 한 배열을 만들어주었습니다. 스톤 크기의 차이가 클 수록 효율적인 작업을 수행할 수 있도록 해주었습니다. 작업된 이 배열을 활용하여 이분탐색을 수행하였습니다. 소스는 다음과 같습니다. import java.util.*; class Solution { static int[] setting(int[] stones) { Set<Integer> set = new TreeSet<>(); //...

Read more

[프로그래머스] Level3 - 숫자 게임

> 문제설명 xx 회사의 2xN명의 사원들은 N명씩 두 팀으로 나눠 숫자 게임을 하려고 합니다. 두 개의 팀을 각각 A팀과 B팀이라고 하겠습니다. 숫자 게임의 규칙은 다음과 같습니다. 먼저 모든 사원이 무작위로 자연수를 하나씩 부여받습니다. 각 사원은 딱 한 번씩 경기를 합니다. 각 경기당 A팀에서 한 사원이, B팀에서 한 사원이 나와 서로의 수를 공개합니다. 그때 숫자가 큰 쪽이 승리하게 되고, 승리한 사원이 속한 팀은 승점을 1점 얻게 됩니다. 만약 숫자가 같다면 누구도 승점을 얻지 않습니다. 전체 사원들은 우선 무작위로 자연수를 하나씩 부여받았습니다. 그다음 A팀은 빠르게 출전순서...

Read more

[프로그래머스] Level3 - 셔틀버스

> 문제 2018 카카오 블라인드 채용 문제 문제 : [셔틀버스] 문제풀이 PriorityQueue 사용하여 풀었습니다. “HH:MM” 형식을 “MM”으로 치환하여 풀이하였으며, 설명은 소스의 주석과 같습니다. 파라미터값이 순서대로 2,10,3,[“09:05”,”09:09”,”09:13”] 의 결과는 “09:10”와 같으나, “09:12”일때도 테스트케이스를 모두 통과할 수 있었으며, 테스트케이스를 추가해야하는 필요성이 있어보였습니다. 다음소스는 위의 추가 테스트케이스도 함께 통과할 수 있습니다. import java.util.*; public class...

Read more