https://www.acmicpc.net/problem/13305 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws..
알고리즘
https://www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class Main { public static void main(String[] args) throws Except..
https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 문제풀이 import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int wei..
https://www.acmicpc.net/problem/25496 25496번: 장신구 명장 임스 첫 번째 줄에 정수 $P$와 정수 $N$이 공백으로 구분되어 주어진다. ($1 \le P \le 200$, $1 \le N \le 1\,000$) 두 번째 줄에는 정수 $A_1, A_2, \dots, A_N$이 공백으로 구분되어 주어진다. ($1 \le A_i \le 200$) www.acmicpc.net 문제를 읽어보면 그리디 문제라는 걸 쉽게 알 수 있다. 나의코드 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; import java..
알고리즘이란? 문제를 해결하기 위한 단계적 절차 수학은 병렬적으로 수식을 계산할 수 있으므로 단계적이지 않다. 알고리즘이라고 부르지 않음 요리법은 같은 과정을 여러 번 반복하지 않기 때문에 알고리즘이 아니다. 최초의 알고리즘: BC 300 유클리드 최대공약수 알고리즘(GCD) 순차탐색 이진탐색 그리디 한붓그리기: 오일러 서킷 문제 - 현재 점으로 돌아오는 그려지지 않은 사이클이 존재한다면 해당 점으로 간다. 미로찾기: 오른손법칙 1.6 가짜동전 찾기 많은 동전 중 하나의 가짜동전이 있다. 가짜동전은 진짜동전보다 무게가 조금 가볍다. 최소의 저울질로 가짜동전을 찾아내자! 동전의 전체 개수를 n개라고 하자. 2개씩 짝을 지어 2개씩 저울에 올려서 확인한다. 운이 좋으면 한 번만에 동전을 찾아낼 수 있다 최대..
11123 양 한마리... 양 두마리...(실버2) https://www.acmicpc.net/problem/11123 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class Main { static int rowStep[] = {-1, 0, +1, 0}; static int colStep[] = {0, -1, 0, 1}; static char field[][]; static int height; static int width; public static void mai..
[1026] 보물 import sys input = sys.stdin.readline input() A = list(map(int, input().strip().split())) B = list(map(int, input().strip().split())) A.sort() B.sort(reverse=True) print(sum([a*b for a,b in zip(A,B)])) (A의 가장 큰 값) * (B의 가장 작은 값) + (A의 두 번째로 큰 값) * (B의 두 번째로 작은 값) + ... 을 반복하면 곱의 최소를 구할 수 있다. 최솟값만 출력하면 되니까 B를 내림차순으로 정렬해도 상관없다. A를 오름차순으로 정렬, B를 내림차순으로 정렬 A와 B를 인덱스에 맞게 곱해준 리스트를 만들고, 그 리스트..
1326 폴짝폴짝 https://www.acmicpc.net/problem/1326 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { static int stoneNum; static int stone[]; static int count[]; public static void main(String[] args) throws Exception { //====입력받기====// BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); stoneNum = Integer.par..
25418 정수 a를 k로 만들기 [실버3] https://www.acmicpc.net/problem/25418 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws Exception { BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(bf.readLine()); int A = Integer.parseInt(st..