분류 전체보기 116

java 최대공약수 구하기

두 수의 최대공약수(Greatest Common Divisor, GCD)는 두 수가 공통으로 가지고 있는 가장 큰 약수를 의미합니다. 다시 말해, 주어진 두 수 중에서 더 작은 수로도 나누어떨어지는 가장 큰 수를 말합니다. 최대공약수를 계산하는 방법은 여러 가지가 있습니다. 그 중 가장 일반적인 방법은 "유클리드 호제법"을 사용하는 것입니다. 이 방법은 두 수의 차이가 두 수 중 작은 수로 나누어떨어질 때까지 두 수를 계속 나누어주는 과정을 반복하여 최대공약수를 찾는 방법입니다. 예를 들어, 30과 45의 최대공약수를 구하는 경우: 45를 30으로 나누면 나머지가 15가 남습니다. (45 ÷ 30 = 1, 나머지 15) 이제 30을 15로 나누면 나머지가 0이 됩니다. (30 ÷ 15 = 2, 나머지 0..

ALGORITHM/이론 2023.08.26

StringBuilder란

public class StringBuilderExample { public static void main(String[] args) { StringBuilder sb = new StringBuilder(); sb.append("Hello"); sb.append(" "); sb.append("World"); System.out.println(sb.toString()); // Output: "Hello World" } } StringBuilder는 Java에서 문자열을 효율적으로 처리하기 위해 제공되는 클래스입니다. 문자열 연결 작업을 수행할 때 String 클래스를 사용하면 새로운 문자열이 생성되기 때문에 메모리 사용량이 많아질 수 있습니다. 하지만 StringBuilder를 사용하면 문자열을 수정하거나..

ALGORITHM/이론 2023.08.23

[백준] 감시피하기 java 18428번

https://www.acmicpc.net/problem/18428 18428번: 감시 피하기 NxN 크기의 복도가 있다. 복도는 1x1 크기의 칸으로 나누어지며, 특정한 위치에는 선생님, 학생, 혹은 장애물이 위치할 수 있다. 현재 몇 명의 학생들은 수업시간에 몰래 복도로 빠져나왔는데, 복 www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; import java.util.LinkedList; import java.uti..

[백준] 2606번 바이러스 java

https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net dfs 활용 import java.util.Scanner; class Main { static int n, v, count; static int[][] arr, map; static boolean[] visited; public static void main(String[] args) { Scanner sc = new Scanner(System.in); n = sc.nextInt(); v = sc.ne..

[백준] 2798번 블랙잭 java

https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 순열로 M보다 작은 합의 모든 경우의 수를 따졌다 어렵게 생각하지 않고 풀 수 있을 문제긴 하다. 순열에서 중복 제거를 하면 개선될 수 있을 거 같다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringToke..

ALGORITHM 2022.10.25

👉블로그에 이모티콘 넣는 법 (이모지)

👉오늘은 블로그에 이모티콘 넣는 법을 소개합니다. 👉다양한 이모티콘으로 블로그 작성할 때 꾸밀 수 있는 것이 장점입니다. 1️⃣아래 사이트를 진입합니다. 2️⃣원하는 이모티콘을 드래그합니다. 3️⃣ctrl + c 클릭합니다. 4️⃣작성 중인 글에 ctrl + v를 클릭합니다. ✅그러면 원하는 이모티콘을 불러온 걸 확인할 수 있습니다. https://getemoji.com/ 😋 Get Emoji — All Emojis to ✂️ Copy and 📋 Paste 👌 ✂️ Copy and 📋 Paste Emoji 👍 No apps required Emojis are supported on iOS, Android, macOS, Windows, Linux and ChromeOS. Copy and paste emoj..

참고 2022.10.09

[백준] 13904 과제 java

https://www.acmicpc.net/problem/13904 13904번: 과제 예제에서 다섯 번째, 네 번째, 두 번째, 첫 번째, 일곱 번째 과제 순으로 수행하고, 세 번째, 여섯 번째 과제를 포기하면 185점을 얻을 수 있다. www.acmicpc.net import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; import java.util.Comparator; import java.util.PriorityQueue; import java.util.StringTokenizer; class Main{ public static void main(String[] args) throws Excep..

JAVA 2차원 시계방향으로 90도 돌리기

왼쪽 배열을 시계방향으로 돌리면 오른쪽과 같습니다. 색깔대로 규칙을 확인해보면 다음과 같습니다. 이제 시계방향으로 직접적으로 돌리기 위해서 배열의 좌표 위치를 활용하겠습니다. 원래 위치 -> 시계방향 90도 돌린 후 위치는 이렇게 됩니다. 돌린 후 배열의 행은 원래 배열의 열과 같고 돌린 후 배열의 열은 (원래 배열의 최대 인덱스 - 원래 배열의 행)과 같다는 것을 알 수 있습니다. 여기서는 최대 인덱스가 2입니다. [0,0] -> [0,2] [0,1] -> [1,2] [0,2] -> [2,2] 2-0 = 2 [1,0] -> [0,1] [1,1] -> [1,1] [1,2] -> [2,1] 2-1= 1 [2,0] -> [0,0] [2,1] -> [1,0] [2,2] -> [2,0] 2-2 = 0 class..

ALGORITHM/이론 2022.04.07

[백준] 마법사 상어와 비바라기 java 21610번

https://www.acmicpc.net/problem/21610 21610번: 마법사 상어와 비바라기 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그 마법을 할 수 있다. 오늘 새로 배운 마법은 비바라기이다. 비바라기를 시전하면 하늘에 비구름을 만들 수 있다. 오늘은 비바라기 www.acmicpc.net 목표 : M번의 이동이 모두 끝난 후 바구니에 들어있는 물의 양의 합을 구해보자. 문제 풀이 : map 배열 : 비바라기 크기가 N*N인 격자 visited 배열 : 구름의 위치 arr 배열 : 방향 d와 거리 s를 담은 이동명령 배열 dir 배열 : 1부터 순서대로 ←, ↖, ↑, ↗, →, ↘, ↓, ↙ list : 비구름 Pair 클래스 : list를 쌍으로 받기 위한 클래스 모든 구..