분류 전체보기
-
백준 : 단지번호붙이기 - 2667번 (java)Tech-blog/Algorithm 2023. 3. 3. 12:32
import java.util.*; public class Numbering { static int[][] map; static boolean[][] visited; static int[] dx = {0, 0, 1, -1}; static int[] dy = {1, -1, 0, 0}; static int N, count; static ArrayList counts; public static void main(String[] args) { Scanner sc = new Scanner(System.in); N = sc.nextInt(); map = new int[N][N]; visited = new boolean[N][N]; counts = new ArrayList(); for (int i = 0; i < N..
-
백준 : A -> B - 16953번 (java)Tech-blog/Algorithm 2023. 3. 2. 22:02
import java.util.*; public class AB { static int A, B; public static void main(String[] args) { Scanner sc = new Scanner(System.in); A = sc.nextInt(); B = sc.nextInt(); int cnt = 1; // A 자체가 B인 경우를 고려하여 1로 초기화 while (B > A) { if (B % 10 == 1) { // B의 일의 자리가 1인 경우 B /= 10; cnt++; } else if (B % 2 == 0) { // B가 짝수인 경우 B /= 2; cnt++; } else { // 둘 다 아닌 경우 cnt = -1; break; } } if (A != B) cnt = -1; ..
-
백준 : 유기농 배추 - 1012번 (java)Tech-blog/Algorithm 2023. 3. 2. 21:57
import java.util.*; public class OrganicCabbage { static int[][] map; static boolean[][] visited; static int[] dx = {0, 0, 1, -1}; static int[] dy = {1, -1, 0, 0}; static int N, M, K; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T = sc.nextInt(); // 테스트 케이스의 개수 while (T-- > 0) { M = sc.nextInt(); // 가로 길이 N = sc.nextInt(); // 세로 길이 K = sc.nextInt(); // 배추가 심어..
-
백준 - 이장님초대 - 9237 (java)Tech-blog/Algorithm 2023. 3. 2. 00:41
문제 농부 상근이는 마당에 심기 위한 나무 묘목 n개를 구입했다. 묘목 하나를 심는데 걸리는 시간은 1일이고, 상근이는 각 묘목이 다 자라는데 며칠이 걸리는지 정확하게 알고 있다. 상근이는 마을 이장님을 초대해 자신이 심은 나무를 자랑하려고 한다. 이장님을 실망시키면 안되기 때문에, 모든 나무가 완전히 자란 이후에 이장님을 초대하려고 한다. 즉, 마지막 나무가 다 자란 다음날 이장님을 초대할 것이다. 상근이는 나무를 심는 순서를 신중하게 골라 이장님을 최대한 빨리 초대하려고 한다. 이장님을 며칠에 초대할 수 있을까? 입력 입력은 두 줄로 이루어져 있다. 첫째 줄에는 묘목의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄에는 각 나무가 다 자라는데 며칠이 걸리는지를 나타낸 ti가 주어진다. (..
-
백준 : 부분 문자열 - 6550번 (java)Tech-blog/Algorithm 2023. 3. 2. 00:04
문제 2개의 문자열 s와 t가 주어졌을 때 s가 t의 부분 문자열인지 판단하는 프로그램을 작성하라. 부분 문자열을 가지고 있는지 판단하는 방법은 t에서 몇 개의 문자를 제거하고 이를 순서를 바꾸지 않고 합쳤을 경우 s가 되는 경우를 이야기 한다. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문자열 s 와 t가 빈칸을 사이에 두고 들어온다. s와 t의 길이는 10만을 넘지 않는다. 출력 입력된 s와 t의 순서대로 s가 t의 부분 문자열인 경우 Yes라 출력하고 아닐 경우 No라고 출력한다. 예제 입력 1 복사 sequence subsequence person compression VERDI vivaVittorioEmanueleReDiItalia ca..
-
백준 : 다익스트라 - 파티 - 1238번 (java)Tech-blog/Algorithm 2023. 2. 28. 12:30
다익스트라가 아직 너무 어려워서 문제 정답을 보고 이해하는 느낌으로 풀었다... 아래 블로그에 설명이 잘 되어있어서 이번에는 이런식으로 풀고 다음에 다시 풀어볼 예정!! https://velog.io/@lifeisbeautiful/Java-%EB%B0%B1%EC%A4%80-1238%EB%B2%88-%ED%8C%8C%ED%8B%B0-with-%EC%9E%90%EB%B0%94 [Java] 백준 1238번 파티 with 자바 [Java] 백준 1238번 파티 with 자바 velog.io import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class..
-
백준 : 다익스트라 - 최단경로 - 1753번 (java)Tech-blog/Algorithm 2023. 2. 27. 15:17
나중에 다시 한번 풀어볼 예정.. import java.io.*; import java.util.*; public class ShortRoute { static ArrayList[] list; private static int v; private static int e; private static int start; private static int[] distance; private static int INF = Integer.MAX_VALUE; public static void main(String[] args) { Scanner sc = new Scanner(System.in); v = sc.nextInt(); //정점개수 e = sc.nextInt(); //간선개수 start = sc.nextIn..
-
백준 : 거스름돈 - 14916 (java)Tech-blog/Algorithm 2023. 2. 21. 15:10
문제 춘향이는 편의점 카운터에서 일한다. 손님이 2원짜리와 5원짜리로만 거스름돈을 달라고 한다. 2원짜리 동전과 5원짜리 동전은 무한정 많이 가지고 있다. 동전의 개수가 최소가 되도록 거슬러 주어야 한다. 거스름돈이 n인 경우, 최소 동전의 개수가 몇 개인지 알려주는 프로그램을 작성하시오. 예를 들어, 거스름돈이 15원이면 5원짜리 3개를, 거스름돈이 14원이면 5원짜리 2개와 2원짜리 2개로 총 4개를, 거스름돈이 13원이면 5원짜리 1개와 2원짜리 4개로 총 5개를 주어야 동전의 개수가 최소가 된다. 입력 첫째 줄에 거스름돈 액수 n(1 ≤ n ≤ 100,000)이 주어진다. 출력 거스름돈 동전의 최소 개수를 출력한다. 만약 거슬러 줄 수 없으면 -1을 출력한다. 예제 입력 1 복사 13 예제 출력 ..