목록알고리즘 (97)
It's easy, if you try
문제 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net 풀이 import java.util.*; import java.io.*; public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static StringTokenizer st; static int[][] map; static boolean[][] visited; static int N, M, year =0; static int[..
문제 1043번: 거짓말 지민이는 파티에 가서 이야기 하는 것을 좋아한다. 파티에 갈 때마다, 지민이는 지민이가 가장 좋아하는 이야기를 한다. 지민이는 그 이야기를 말할 때, 있는 그대로 진실로 말하거나 엄청나게 www.acmicpc.net 풀이 import java.io.*; import java.util.*; public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static StringTokenizer st; static int N, M, total = 0; static boolean[] truePeople = new boolean[51]; static int[] parent..
문제 2629번: 양팔저울 첫째 줄에는 추의 개수가 자연수로 주어진다. 추의 개수는 30 이하이다. 둘째 줄에는 추의 무게들이 자연수로 가벼운 것부터 차례로 주어진다. 같은 무게의 추가 여러 개 있을 수도 있다. 추의 무 www.acmicpc.net 전체 코드 import java.util.*; import java.io.*; public class Main_BOJ_2629_양팔저울 { // class 시작 static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 입력 한줄 받아오기 static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(Syst..
문제 1755번: 숫자놀이 79를 영어로 읽되 숫자 단위로 하나씩 읽는다면 "seven nine"이 된다. 80은 마찬가지로 "eight zero"라고 읽는다. 79는 80보다 작지만, 영어로 숫자 하나씩 읽는다면 "eight zero"가 "seven nine"보다 사전순으로 www.acmicpc.net 풀이 import java.util.*; import java.io.*; public class Main { // class 시작 static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 입력 한줄 받아오기 static BufferedWriter bw = new BufferedWriter(new OutputStr..
문제 14923번: 미로 탈출 홍익이는 사악한 마법사의 꾐에 속아 N x M 미로 (Hx, Hy) 위치에 떨어졌다. 다행히도 홍익이는 마법사가 만든 미로의 탈출 위치(Ex, Ey)를 알고 있다. 하지만 미로에는 곳곳에 마법사가 설치한 벽이 www.acmicpc.net 풀이 import java.util.*; import java.io.*; public class Main { static BufferedReader br= new BufferedReader(new InputStreamReader(System.in)); static StringTokenizer st; static int N, M, Hx, Hy, Ex, Ey; static int[][] map; static boolean[][][] visite..
문제 17472번: 다리 만들기 2 첫째 줄에 지도의 세로 크기 N과 가로 크기 M이 주어진다. 둘째 줄부터 N개의 줄에 지도의 정보가 주어진다. 각 줄은 M개의 수로 이루어져 있으며, 수는 0 또는 1이다. 0은 바다, 1은 땅을 의미한다. www.acmicpc.net 풀이 import java.util.*; import java.io.*; public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static StringTokenizer st; // input static int N, M; // 세로, 가로 static int[][] map; // 섬의 상태를 담는다. static..
프림 알고리즘 하나의 정점에서 연결된 간선들 중에 하나씩 선택하면서 '최소 신장 트리(MST)'를 만들어 가는 방식 최소신장트리? 신장 트리는 n개의 정점으로 이루어진 무향그래프에서 n개의 정점과 n-1개의 간선으로 이루어진 트리를 말한다. 최소 신장 트리 (Minimum Spanning Tree)는 신장 트리를 구성하는 간선들의 가중치의 합이 최소인 신장 트리를 말한다. 무향 그래프에서 신장 트리는 여러개가 될 수 있지만 최소 신장 트리는 하나만 존재할 수 있다. 그래프에서 최소 비용 문제를 구하는 방법 - 모든 정점을 연결하는 간선들의 가중치의 합이 최소가 되는 트리 - 두 정점 사이의 최소 비용의 경로 찾기 => 이때 사용되는 알고리즘으로는 PRIM 알고리즘과 Kruskal 알고리즘이 있다. 오늘은..
문제: 단체사진 찍기 가을을 맞아 카카오프렌즈는 단체로 소풍을 떠났다. 즐거운 시간을 보내고 마지막에 단체사진을 찍기 위해 카메라 앞에 일렬로 나란히 섰다. 그런데 각자가 원하는 배치가 모두 달라 어떤 순서로 설지 정하는데 시간이 오래 걸렸다. 네오는 프로도와 나란히 서기를 원했고, 튜브가 뿜은 불을 맞은 적이 있던 라이언은 튜브에게서 적어도 세 칸 이상 떨어져서 서기를 원했다. 사진을 찍고 나서 돌아오는 길에, 무지는 모두가 원하는 조건을 만족하면서도 다르게 서는 방법이 있지 않았을까 생각해보게 되었다. 각 프렌즈가 원하는 조건을 입력으로 받았을 때 모든 조건을 만족할 수 있도록 서는 경우의 수를 계산하는 프로그램을 작성해보자. 입력 형식 입력은 조건의 개수를 나타내는 정수 n과 n개의 원소로 구성된 ..
문제 14938번: 서강그라운드 예은이는 요즘 가장 인기가 있는 게임 서강그라운드를 즐기고 있다. 서강그라운드는 여러 지역중 하나의 지역에 낙하산을 타고 낙하하여, 그 지역에 떨어져 있는 아이템들을 이용해 서바이벌을 www.acmicpc.net 전체코드 import java.util.*; import java.io.*; public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static StringTokenizer st; static ArrayList[] graph; static int[] distance; static boolean[] check; static int[] item..
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; import java.util.StringTokenizer; /* 5 0 2 2 5 9 2 0 3 4 8 2 3 0 7 6 5 4 7 0 5 9 8 6 5 0 ==> 8 4 0 94 53 16 79 0 24 18 91 80 0 98 26 51 92 0 ==> 16 7 0 2 8 5 9 15 20 2 0 5 4 7 10 16 8 5 0 7 6 4 10 5 4 7 0 15 8 9 9 7 6 15 0 11 13 15 10 4 8 11 0 6 20 16 ..