백준

    백준 1074번 Z [ Java ]

    백준 1074번 Z [ Java ]

    1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. 만약, N > 1이 라서 www.acmicpc.net 테스트케이스를 만들어보면서 작은 범위부터 완성시켰습니다. import java.io.*; import java.util.*; public class Main { static long idx = 0; static long N, r, c; public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(Syst..

    백준 1600번 말이 되고픈 원숭이 [ Java ]

    백준 1600번 말이 되고픈 원숭이 [ Java ]

    1600번: 말이 되고픈 원숭이 첫째 줄에 정수 K가 주어진다. 둘째 줄에 격자판의 가로길이 W, 세로길이 H가 주어진다. 그 다음 H줄에 걸쳐 W개의 숫자가 주어지는데, 0은 아무것도 없는 평지, 1은 장애물을 뜻한다. 장애물이 있 www.acmicpc.net 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)); int[] dx = new int[]{0, 1, 2, 1, 2, 1, 0, -1, -2, -1, -2, -1..

    백준 2206번 벽 부수고 이동하기 [ Java ]

    백준 2206번 벽 부수고 이동하기 [ Java ]

    2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 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()..

    백준 2146번 다리 만들기 [ Java ]

    백준 2146번 다리 만들기 [ Java ]

    2146번: 다리 만들기 여러 섬으로 이루어진 나라가 있다. 이 나라의 대통령은 섬을 잇는 다리를 만들겠다는 공약으로 인기몰이를 해 당선될 수 있었다. 하지만 막상 대통령에 취임하자, 다리를 놓는다는 것이 아깝다 www.acmicpc.net 제가 사용한 방법은 처음에 BFS로 라벨링을 했습니다. 그리고 그 라벨마다 따로 BFS를 돌려주어 다른 섬을 만나면 거리를 구해 최소값 구하기 연산을 하여서 각 섬에서의 최소거리를 비교하였습니다. import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedRea..

    백준 13305번 주유소 [ Java ]

    백준 13305번 주유소 [ Java ]

    13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net 이동중 가장 현재까지 지나온(현재 포함) 주유소 중 가장 저렴한 가격으로 갱신해주면서 이동하면 됩니다. 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)); int..

    백준 7795번 먹을 것인가 먹힐 것인가 [ Java ]

    백준 7795번 먹을 것인가 먹힐 것인가 [ Java ]

    7795번: 먹을 것인가 먹힐 것인가 심해에는 두 종류의 생명체 A와 B가 존재한다. A는 B를 먹는다. A는 자기보다 크기가 작은 먹이만 먹을 수 있다. 예를 들어, A의 크기가 {8, 1, 7, 3, 1}이고, B의 크기가 {3, 6, 1}인 경우에 A가 B를 먹을 www.acmicpc.net 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)); StringBuilder sb = new StringBuilder(); ..

    백준 5427번 불 [ Java ]

    백준 5427번 불 [ Java ]

    5427번: 불 상근이는 빈 공간과 벽으로 이루어진 건물에 갇혀있다. 건물의 일부에는 불이 났고, 상근이는 출구를 향해 뛰고 있다. 매 초마다, 불은 동서남북 방향으로 인접한 빈 공간으로 퍼져나간다. 벽에 www.acmicpc.net 이전에 풀었던 4170: 불!과 동일한 문제였습니다. 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)); int[] dx = new int[]{1, 0, -1, 0}; int[] dy =..

    백준 11967번 불켜기 [ Java ]

    백준 11967번 불켜기 [ Java ]

    11967번: 불켜기 (1, 1)방에 있는 스위치로 (1, 2)방과 (1, 3)방의 불을 켤 수 있다. 그리고 (1, 3)으로 걸어가서 (2, 1)방의 불을 켤 수 있다. (2, 1)방에서는 다시 (2, 2)방의 불을 켤 수 있다. (2, 3)방은 어두워서 갈 수 없으 www.acmicpc.net 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)); int[] dx = new int[]{1, 0, -1, 0}; int[..

    백준 10757번 큰 수 A+B [ Java ]

    백준 10757번 큰 수 A+B [ Java ]

    10757번: 큰 수 A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 큰 수의 처리는 문자열이나 배열 등 여러가지 처리방법이 있지만 저는 java에 무한대의 정수를 처리할 수 있는 BigInteger라는 클래스가 있어서 사용했습니다. import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); BigInteger a = sc.nextBigInteger(); BigInteger b = sc.nextBigInteger(); System...

    백준 3273번 두 수의 합 [ Java ]

    백준 3273번 두 수의 합 [ Java ]

    3273번: 두 수의 합 n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i < j ≤ n)을 만족하는 www.acmicpc.net 투 포인터를 이용하여 풀었습니다. 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)); int n = Integer.pa..