자바 203

[JAVA] 백준 1436번 - 영화감독 숌

https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main{ public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputSt..

ALGORITHM 2022.09.16

[JAVA] 백준 1018번 - 체스판 다시 칠하기

https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static int getSolution(int start_row, int start_col, String[] boa..

ALGORITHM 2022.09.15

[JAVA] 백준 7568번 - 덩치

https://www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedR..

ALGORITHM 2022.09.14

[JAVA] 백준 2231번 - 분해합

https://www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 분해합은 해당 (자연수 + 자연수의 각 자리 수 합) 이다. 자연수 m의 분해합이 n인 경우 m을 n의 생성자라 한다. 예를 들어, 198의 분해합은 (198+1+9+8) = 216 이다. 198은 216의 생성자이다. 자연수 n의 가장 작은 생성자를 찾는 문제이다. import java.io.BufferedReader; import java.io.IOException..

ALGORITHM 2022.09.13

[JAVA] 백준 2798번 - 블랙잭

https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main{ public static void main(String[] args) throws IOException {..

ALGORITHM 2022.09.13

[JAVA] 알고리즘 : 그래프 최단거리(BFS)

import java.lang.reflect.Array; import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class Main{ static int n, m; static ArrayList graph; // Integer를 저장하는 ArrayList를 저장하는 ArrayList static int[] ch, dis; public void BFS(int v){ Queue queue = new LinkedList(); ch[v]=1; // 체크배열 체크 dis[v]=0; // 출발점 0으로 queue.offer(v); while(!queue.isEmpty(..

ALGORITHM 2022.09.09

[JAVA] 알고리즘 : Tree 말단노드까지 가장 짧은 경로(DFS/BFS)

그림과 같은 이진트리에서 루트 노드 1에서 말단노드까지의 길이 중 가장 짧은 길이를 구하는 프로그램을 작성하라. 각 경로의 길이는 루트노드에서 말단노드까지 가는데 이동하는 횟수를, 즉 간선(에지)의 개수의 길이이다. DFS class Node{ int data; Node lt, rt; public Node(int val){ data=val; lt=rt=null; } } public class Main{ Node root; public int DFS(int L, Node root){ if(root.lt==null && root.rt==null) return L; // 말단 노드라면 레벨 리턴 else return Math.min(DFS(L+1, root.lt), DFS(L+1, root.rt)); // 자..

ALGORITHM 2022.09.07

[JAVA] 알고리즘 : 송아지 찾기(BFS)

import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; class Main{ int answer=0; int[] dis={1,-1,5}; int[] ch; // 한번 방문한 것은 큐에 안넣기 위해 체크할 배열 Queue Q = new LinkedList(); public int BFS(int s, int e){ ch=new int[10001]; ch[s]=1; Q.offer(s); int L=0; // 루트 노드는 레벨이 0 while(!Q.isEmpty()){ int len=Q.size(); // 탐색하고자하는 레벨에 있는 원소의 개수 for(int i=0; i

ALGORITHM 2022.09.07