[프로그래머스] 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...
[프로그래머스] 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...
[프로그래머스] 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){
...
[프로그래머스] Level4 - 호텔 방 배정
> 문제
2019 카카오 겨울 인턴십 문제
문제 : [호텔 방 배정]
> 문제풀이
union-find(disjoint set)로 풀었다. 문제풀다가 한번 나올때쯤 됐다했는데 딱 나왔다.
기존에 배열을 활용한 union-find는 제한사항에서 배열의 크기를(10^12) 수렴할 수 없기 때문에 Map을 활용하였다.
Map에 해당 값이 없으면 갱신해주고, 앞/뒤로 값이 있는지 체크해서, 큰값으로 union처리 해주었다.
값이 있다면 그보다 큰 값에 갱신해주고, 갱신한 값보다 큰값이 있는지 체크해서 union처리 해주었다.
import java.util.*;
class S...
[프로그래머스] 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;
...
[프로그래머스] Level3 - 징검다리 건너기
> 문제
2019 카카오 겨울 인턴십 문제
문제 : [징검다리 건너기]
> 문제풀이
스톤배열을 활용하여 중복제거 및 오름차순 정렬 한 배열을 만들어주었습니다.
스톤 크기의 차이가 클 수록 효율적인 작업을 수행할 수 있도록 해주었습니다.
작업된 이 배열을 활용하여 이분탐색을 수행하였습니다.
소스는 다음과 같습니다.
import java.util.*;
class Solution {
static int[] setting(int[] stones) {
Set<Integer> set = new TreeSet<>(); //...
[프로그래머스] Level3 - 숫자 게임
> 문제설명
xx 회사의 2xN명의 사원들은 N명씩 두 팀으로 나눠 숫자 게임을 하려고 합니다. 두 개의 팀을 각각 A팀과 B팀이라고 하겠습니다. 숫자 게임의 규칙은 다음과 같습니다.
먼저 모든 사원이 무작위로 자연수를 하나씩 부여받습니다.
각 사원은 딱 한 번씩 경기를 합니다.
각 경기당 A팀에서 한 사원이, B팀에서 한 사원이 나와 서로의 수를 공개합니다. 그때 숫자가 큰 쪽이 승리하게 되고, 승리한 사원이 속한 팀은 승점을 1점 얻게 됩니다.
만약 숫자가 같다면 누구도 승점을 얻지 않습니다.
전체 사원들은 우선 무작위로 자연수를 하나씩 부여받았습니다. 그다음 A팀은 빠르게 출전순서...
[프로그래머스] Level3 - 셔틀버스
> 문제
2018 카카오 블라인드 채용 문제
문제 : [셔틀버스]
문제풀이
PriorityQueue 사용하여 풀었습니다.
“HH:MM” 형식을 “MM”으로 치환하여 풀이하였으며, 설명은 소스의 주석과 같습니다.
파라미터값이 순서대로 2,10,3,[“09:05”,”09:09”,”09:13”] 의 결과는 “09:10”와 같으나,
“09:12”일때도 테스트케이스를 모두 통과할 수 있었으며, 테스트케이스를 추가해야하는 필요성이 있어보였습니다.
다음소스는 위의 추가 테스트케이스도 함께 통과할 수 있습니다.
import java.util.*;
public class...
103 post articles, 13 pages.