Algorithm 25

[이진 탐색] 백준-20551 Sort 마스터 배지훈의 후계자 실버4 (Python)

백준-20551 : Sort 마스터 배지훈의 후계자 https://www.acmicpc.net/problem/20551 20551번: Sort 마스터 배지훈의 후계자 지훈이는 Sort 마스터다. 오랫동안 Sort 마스터 자리를 지켜온 지훈이는 이제 마스터 자리를 후계자에게 물려주려고 한다. 수많은 제자들 중에 후계자를 고르기 위해서 지훈이는 제자들에게 문제 www.acmicpc.net 풀의 입력 받은 숫자들을 오름차순으로 정렬한다. 2진 탐색을 활용하여 가장 먼저 찾은 index를 반환하고 없으면 -1 을 반환 코드 (Python) import sys import bisect def input(): return sys.stdin.readline().rstrip() n, m = map(int, input(..

Algorithm 2023.04.19

[우선순위큐,정렬] 백준-2109 순회강연 골드3 (Python)

백준-2109 : 순회강연 https://www.acmicpc.net/problem/2109 2109번: 순회강연 한 저명한 학자에게 n(0 ≤ n ≤ 10,000)개의 대학에서 강연 요청을 해 왔다. 각 대학에서는 d(1 ≤ d ≤ 10,000)일 안에 와서 강연을 해 주면 p(1 ≤ p ≤ 10,000)만큼의 강연료를 지불하겠다고 알려왔다. www.acmicpc.net 풀이 입력 받은 정보를 날짜 순으로 정렬을 한다. 정렬한 데이터를 꺼내면서 우선순위 큐에 넣으며 우선순위 큐의 크기가 날짜보다 클경우 가장 작은 비용의 값을 꺼낸다. 코드 (python) import sys import heapq def input(): return sys.stdin.readline().rstrip() n = int(i..

Algorithm 2023.04.15

[DFS] 백준-15173 점프왕 쩰리 (Small) 실버4 (Python)

백준-15173 : 점프왕 쩰리 (Small) https://www.acmicpc.net/problem/16173 16173번: 점프왕 쩰리 (Small) 쩰리는 맨 왼쪽 위의 칸에서 출발해 (행, 열)로 나타낸 좌표계로, (1, 1) -> (2, 1) -> (3, 1) -> (3, 3)으로 이동해 게임에서 승리할 수 있다. www.acmicpc.net 풀이 0,0에서 시작해서 해당 이동할수 있는 값 만큼 이동을하여 우측과 , 아래쪽을 확인하면서 DFS를 실행항 주의사항 좌표의 값이 0인 값도 있기 때문에 해당 부분은 제외해줌 코드 (python) import sys read = sys.stdin.readline n = int(read()) graph = [list(map(int, read().split..

Algorithm 2023.04.14

[그리디,이진 탐색] 백준-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] 백준-10610 30 실버4

백준-10610 : 30 https://www.acmicpc.net/problem/10610 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net 아이디어 30의 배수 3의 배수이면서 10의 배수 3의 배수 조건 : 각자리 합이 3의배수 10의배수 조건 1의 자리의 숫자가 0 풀의 숫자를 입력받은 후 각자리 합을 더하면서 우선순위 큐에 넣는다. 우선순위 큐에서 꺼낸면서 결과에 더한 후 1의 자리가 0인지 확인한다. 코드 (java) package Bfs.Baejoon2437; import java.util.*; pub..

Algorithm 2023.04.11

[BFS] 백준-2437 저울 골드2

백준-2437 : 저울 https://www.acmicpc.net/problem/2437 2437번: 저울 하나의 양팔 저울을 이용하여 물건의 무게를 측정하려고 한다. 이 저울의 양 팔의 끝에는 물건이나 추를 올려놓는 접시가 달려 있고, 양팔의 길이는 같다. 또한, 저울의 한쪽에는 저울추들만 놓 www.acmicpc.net 풀의 입력 받은 숫자들은 오름차순 정렬을 한다. 누적 합(SUM)을 구하면서 그 다음 숫자가 누적합보다 2보다 클 경우 SUM+1 값을 측정할수 없는 값 이다. 코드 (java) import java.util.*; public class Baejoon2437 { public static void main(String[] args) { Scanner sc = new Scanner(Sys..

Algorithm 2023.04.10

[BFS] 백준-1339 단어 수학 골드4

백준-1339 : 단어 수학 https://www.acmicpc.net/problem/1339 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net 풀의 입력받은 단어를 입력받은 알파벳들을 알파벳 별로 얼마나 입력 받았는지 기록한다. 우선 순위 큐에 넣은 뒤 큰 값부터 꺼내어 가중치를 9부터 1씩 줄이면 곱해준다. 코드 (java) import java.util.*; public class Baejoon1339 { public static void main(String[] args) { Scanner sc =..

Algorithm 2023.04.09

[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