전체 글

전체 글

    모래성 - 10711번

    모래성 - 10711번

    풀이 방법 파도에 깎일 수 있는 곳을 찾아서 큐에 넣어주고 각 시간마다 한번에 변화시켜준다. 만약 모래가 없어진다면 없어진곳 주변만 다시 비교해서 파도에 깎일 수 있는 곳인지 찾아주었다. 내 코드 package com.company; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { static int[][] way = {{-1, -1}, {-1, 0}, {-1, 1}, {0, 1}, {1, 1}, {1, 0}, {1, -1}, {0, -1}}; static int[][] arr; public static void ma..

    스타트링크 - 5014번

    스타트링크 - 5014번

    내 코드 package com.company; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int F = Integer.parseInt(st.nextToken()); int S ..

    람다 표현식

    람다의 특징 익명 함수를 단순화 한것이라고 할 수 있다. 익명 이름이 없으므로 익명이라 표현한다. 구현해야할 코드에 대한 걱정거리가 줄어든다. 함수 람다는 메서드처럼 특정 클래스에 종속되지 않으므로 함수라고 부른다. 하지만 메서드처럼 파라미터 리스트, 바디, 반환 형식, 가능한 예외 리스트를 포함한다. 전달 람다 표현식을 메서드 인수로 전달하거나 변수로 저장할 수 있다. 간결성 익명 클래스처럼 많은 자질구레한 코드를 구현할 필요가 없다. (String s) -> s.length(); (Apple a) -> a.getWeight() > 150 (int x, int y) -> { System.out.println("Result:"); System.out.println(x + y); } () -> 42 (Ap..

    호텔 - 1106번

    호텔 - 1106번

    내 코드 package com.company; import java.io.*; import java.util.*; public class Main { public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int C = Integer.parseInt(st.nextToken()); int N = Integer.parseInt(st.nextToken()); int[] dp = new int[1101]; Arrays.fill(d..

    문제 추천 시스템 Version 1 - 21939번

    문제 추천 시스템 Version 1 - 21939번

    풀이 방법 TreeSet을 이용해서 최댓값, 최솟값을 쉽게 구하고자 했다. 배열에는 각 문제의 난이도를 저장해서 TreeSet에서 제거할 때 사용했다. 내 코드 package com.company; import java.io.*; import java.util.*; public class Main { public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = null; int N = Integer.parseInt(br.readLine()); int[] arr = new int[100001]..

    동작 파라미터화 코드 전달

    인터페이스를 사용해서 한개의 파라미터로 다양한 동작 가능 interface ApplePredicate { boolean test(Apple apple); } enum Color { RED, GREEN } class Apple { int weight; Color color; public Apple(int weight, Color color) { this.weight = weight; this.color = color; } public int getWeight() { return weight; } public void setWeight(int weight) { this.weight = weight; } public Color getColor() { return color; } public void setCo..

    플로이드 2 - 11780번

    플로이드 2 - 11780번

    풀이 방법 플로이드 와샬 문제로 먼저 각 도시마다 최소 비용을 구해주었다. 구해주면서 경로를 알아야 하기 때문에 i -> j로 이동할때 가장 먼저 만나는 도시를 저장해주었다. 가장 먼저 만나는 도시를 이용해서 이동경로를 찾아주었다. 내 코드 package com.company; import java.io.*; import java.util.*; public class Main { static int N, M; static int[][][] arr; static ArrayList list = new ArrayList(); public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new I..

    최소 회의실 개수 - 19598번

    최소 회의실 개수 - 19598번

    풀이 방법 문제를 이해하는 과정에서 굳이 한 회의의 시작시간과 종료시간을 함께 묶어서 볼 필요가 없다고 생각했다. 그래서 시간대 별로 나열하고 그 시간이 시작시간인지 종료시간인지 표시해두었다. 같은 시간대일 경우를 고려해서 같으면 한번에 계산을 해주고 시작시간이면 count를 1증가시키고 종료시간이면 count를 1 감소해 주었다. 내 코드 package com.company; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main { static int N;..

    가장 긴 바이토닉 부분 수열 - 11054번

    가장 긴 바이토닉 부분 수열 - 11054번

    풀이 방법 각 원소들마다 양쪽을 기준으로 최장 부분 수열을 개수를 구해주었다. 각 dp에 저장된 값을 이용해서 바이토닉 부분 수열을 구할 수 있다. 내 코드 package com.company; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { static int N; static int[] arr, dp1, dp2; public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(n..

    스타트택시 - 19238번

    스타트택시 - 19238번

    풀이 방법 bfs를 이용해서 풀이했다. 이 문제에서 생각해야 할게 각 손님마다 출발지와 목적지는 다르고 출발지는 각각 다르다는 말이다. 결국 손님들의 목적지는 같을 수 있고 한 손님의 출발지가 다른 손님의 목적지가 되는 경우가 생긴다. 이 경우만 고려해서 잘 풀어주면 된다. 내 코드 package com.company; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; import java.util.PriorityQueue; import java.util.StringTokenizer; public class Main { static int[][..