Java 10

[그리디,이진 탐색] 백준-8983 사냥꾼 골드4 (Java)

백준-8983 : 사냥꾼 https://www.acmicpc.net/problem/8983 8983번: 사냥꾼 KOI 사냥터에는 N 마리의 동물들이 각각 특정한 위치에 살고 있다. 사냥터에 온 사냥꾼은 일직선 상에 위치한 M 개의 사대(총을 쏘는 장소)에서만 사격이 가능하다. 편의상, 일직선을 x-축이라 가 www.acmicpc.net 아이디어 모든 동물들을 X축이 가장 가까운 사대를 확인하며 사냥 가능한 동물한 수를 파악한다. 풀의 사대를 입력 받고 2분 탐색을 위해 정렬을 진행한다. 가장 가까운 사대를 찾고 사냥 가능한 거리 안에 있으면 사냥 가능 동물을 증가 시킨다. 코드 (java) package Greedy.Baejoon8983; import java.io.BufferedReader; impor..

Algorithm 2023.04.13

[BFS] 백준-7576 토마토 골드5

백준-7576 : 토마토 https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 풀의 익어있는 토마토들을 넣어주고 BFS를 진행 BFS를 진행할때 익어있는 경우 현재 값에 1을 더해서 경과를 표시 더 작은값일 경우 값 갱신 초기 익어있는 토마토값이 1이므로 총 경과일은 가장 큰 값에서 1을 뺀 값을 리턴 코드 (java) import java.util.*; class Baejoon7576Node { private int x; priva..

Algorithm 2023.04.08

[해시] 백준-9375 패션왕 신해빈 실버3 (Java)

백준-9375 : 패션왕 신해빈 https://www.acmicpc.net/problem/9375 9375번: 패션왕 신해빈 첫 번째 테스트 케이스는 headgear에 해당하는 의상이 hat, turban이며 eyewear에 해당하는 의상이 sunglasses이므로 (hat), (turban), (sunglasses), (hat,sunglasses), (turban,sunglasses)로 총 5가지 이다. www.acmicpc.net 풀의 입력받은 옷을 종류별로 카운트 조합을 이용하여 입을수 있는 방법의 수를 구한다(안 입는 경우는 제외) 코드 (java) import java.util.HashMap; import java.util.Scanner; public class Baejoon9375 { publ..

Algorithm 2023.04.08

[완전 탐색] 백준-12100 2048 (Easy) 골드2 (Java)

백준-12100 : 2048(Easy) https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 아이디어 5번만 슬라이딩 가능하니 4방향 4*4*4*4*4 모두 진행해도 1024번 바께 안돼서 완전 탐색해도 괜찮다고 생각함 주의 사항 똑같은 수가 세 개가 있는 경우에는 이동하려고 하는 쪽의 칸이 먼저 합쳐진다. 풀의 모든 슬라이드 경우의 수를 진행한다. 슬라이드 진행후 가장 최대값을 확인하며 갱신해준다. 코드 (java) i..

Algorithm 2023.04.06

[완전 탐색, BFS] 백준-14502 연구소 골드4 (Java)

백준-14502 : 연구소 https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 아이디어 최대 8*8 matrix에 기둥을 3개 세우는 거니 64*64*64 백만번이 안돼서 완전 탐색해도 괜찮다고 생각함 풀이 입력받은 matrix에 0(빈곳)에 벽을 세우는 모든 경우의 수를 확인한다. 벽을 세운 이후 BFS를 통해서 바이러스를 확장시킨다. 모든 경우의수를 확인하면 안전지대의 수가 가장 많은 값을 반환한다. 코드 (java) import java.util.*; c..

Algorithm 2023.04.05

[Stack] 백준-10773 제로 실버4 (Java)

백준-10773 제로 https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 풀이 Stack에 0이 아니면 넣어주고 0일 경우에 Stack에서 꺼내준다. 코드(JAVA) import java.util.*; public class Baejoon10773 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nex..

Algorithm 2023.04.05

[MSA] Spring Boot - Netfix Eureka 란? 생성

Netflix Eureka 넷플릭스에서 MSA를 위해 Spring Cloud에 기부한 오픈 소스이다. MSA에서 서비스들에 대한 정보를 저장하여 외부에서 서비스 호출 시 그에 맞는 서비스 서버로 전달해주는 미들웨어이다. 의존성 주입 (build.gradle) // 스프링 클라우드 버전 ext { set('springCloudVersion', "2021.0.6") } dependencies { implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-server' testImplementation 'org.springframework.boot:spring-boot-starter-test' ... } 어플리케이션 부분에 유레카..

MSA 2023.04.04

[그리디] 백준-1744 수 묶기 골드4 (Java)

백준-1744 : 수 묶기 https://www.acmicpc.net/problem/1744 1744번: 수 묶기 길이가 N인 수열이 주어졌을 때, 그 수열의 합을 구하려고 한다. 하지만, 그냥 그 수열의 합을 모두 더해서 구하는 것이 아니라, 수열의 두 수를 묶으려고 한다. 어떤 수를 묶으려고 할 때, 위치에 www.acmicpc.net 아이디어 1을 제외한 양수는 큰수끼리 곱하면 커진다. 1은 더 해준다. 음수 * 음수는 양수이고 작은 음수끼리 곱하면 커진다. 풀이 아래 조건에 따라 우선순위 큐에 넣어준다. 1은 결과에 더해준다. 1보다큰 값끼리 우선순위큐에 넣어준다. 1보다 작은값 끼리 우선순위 큐에 넣어준다. 우선순위 큐에 2개 이상 존재할때 곱하여 결과에 더해주고 1개의 경우에는 꺼내서 더해준다..

Algorithm 2023.04.04

[그리디] 백준-1715 카드 정렬하기 골드4 (Java)

백준 1715번 : 카드 정렬하기 https://www.acmicpc.net/problem/1715 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 풀이 입력받은 값을 우선 순위 큐에 넣는다. (정렬을 하기 위해) 우선 순위 큐에 2개 이상 존재할 때 두개를 꺼내서 합한 이후에 다시 우선순위 큐에 넣는 것을 반복한다. 코드 (java) import java.util.*; public class Baejoon1715 { public static void main(String[] args) { Sc..

Algorithm 2023.04.02

[그리디] 백준-1439 뒤집기 실버5 (Java)

백준 1439번 : 뒤집기 https://www.acmicpc.net/problem/1439 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모 www.acmicpc.net 풀이 앞 숫자와 비교하여 변화한 수 체크 변화 한 수의 절반의 올림 값 만큼 변화가 필요함 코드 (java) import java.util.*; public class BaeJoon1439 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String num = sc.nextLi..

Algorithm 2023.04.02