Algorithm 41

백준 1781 파이썬**

https://www.acmicpc.net/problem/1781 1781번: 컵라면 상욱 조교는 동호에게 N개의 문제를 주고서, 각각의 문제를 풀었을 때 컵라면을 몇 개 줄 것인지 제시 하였다. 하지만 동호의 찌를듯한 자신감에 소심한 상욱 조교는 각각의 문제에 대해 데드라 www.acmicpc.net import sys import heapq if __name__ == '__main__': N = int(sys.stdin.readline()) exam_info = [] for _ in range(N): d, c = map(int, sys.stdin.readline().rstrip().split()) exam_info.append((d, c)) exam_info.sort() q = [] for exam ..

백준 1202 파이썬**

https://www.acmicpc.net/problem/1202 1202번: 보석 도둑 첫째 줄에 N과 K가 주어진다. (1 ≤ N, K ≤ 300,000) 다음 N개 줄에는 각 보석의 정보 Mi와 Vi가 주어진다. (0 ≤ Mi, Vi ≤ 1,000,000) 다음 K개 줄에는 가방에 담을 수 있는 최대 무게 Ci가 주어진다. (1 ≤ Ci www.acmicpc.net import heapq import sys if __name__ == '__main__': N, K = map(int, input().split()) jewels = [] bags = [] for _ in range(N): M, V = map(int, sys.stdin.readline().rstrip().split()) heapq.hea..

백준 19939 파이썬

https://www.acmicpc.net/problem/19939 19939번: 박 터뜨리기 $N$개의 공을 $K$개의 바구니에 문제의 규칙을 만족하면서 나눠 담을 수 있다면, 가장 많이 담긴 바구니와 가장 적게 담긴 바구니의 공의 개수 차이를 출력한다. 나눠 담을 수 없는 경우에는 -1을 www.acmicpc.net import sys if __name__ == '__main__': N, K = map(int, input().split()) condition_ball = 0 for i in range(1, K + 1): condition_ball += i if N < condition_ball: print(-1) else: if (N - condition_ball) % K == 0: print(K -..

백준 2122 파이썬

https://www.acmicpc.net/problem/2212 2212번: 센서 첫째 줄에 센서의 개수 N(1 ≤ N ≤ 10,000), 둘째 줄에 집중국의 개수 K(1 ≤ K ≤ 1000)가 주어진다. 셋째 줄에는 N개의 센서의 좌표가 한 개의 정수로 N개 주어진다. 각 좌표 사이에는 빈 칸이 하나 있 www.acmicpc.net import sys if __name__ == '__main__': N = int(input()) K = int(input()) S = list(map(int, sys.stdin.readline().rstrip().split())) S.sort() distance = [] for i in range(1, N): distance.append(S[i] - S[i-1]) dis..

프로그래머를 위한「공부론」- 김창준님

어떻게 공부할까? 프로그래머를 위한「공부론」우리 프로그래머들은 항상 공부해야 합니다. 우리는 지식을 중요하게 여깁니다. 하지만 지식에 대한 지식, 즉 내가 그 지식을 얻은 과정이나 방법 같은 것은 소홀히 여기기 쉽습니다. 따라서 지식의 축적과 공유는 있어도 방법론의 축적과 공유는 매우 드문 편입니다. 저는 평소에 이런 생각에서 학교 후배들을 위해 제 자신의 공부 경험을 짬짬이 글로 옮겨놓았고, 이번 기회에 그 글들을 취합, 정리하게 되었습니다. 그 결실이 바로 이 글입니다. 김창준 (마이크로소프트웨어) 2002/06/02 이 글은 공부하는 방법과 과정에 관한 글입니다. 이 글은 제가 공부한 성공/실패 경험을 기본 토대로 했고, 지난 몇 년간 주변에서 저보다 먼저 공부한 사람들의 경험을 관찰, 분석한 것에..

0번부터 차례대로 번호 매겨진 n개의 원소 중 4 개를 고르는 모든 경우를 출력하라

public void selectArr(int[] arr) { for (int i = 0; i < arr.length; i++) { for (int j = i + 1; j < arr.length + 3; j++) { for (int k = j + 1; k < arr.length; k++) { for (int l = k + 1; l < arr.length; l++) { System.out.println(arr[i] + ", " + arr[j] + ", " + arr[k] + ", " + arr[l]); } } } }회고. 0번부터 차례대로 번호 매겨진 n개의 원소 중 4개를 구하는 것이라면 굳이 배열을 쓸 필요가 없었다. 그냥 public void selectArr(int n) { for (int i = ..

N개의 측정치가 주어질 때 M개의 이동 평균을 계산하라.(2)

package kwo2002.java; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * Created by kwo2002 on 2015-08-21. */ public class MAverage { public List mAvg(List nList, int m) { if (m > nList.size()) { throw new IllegalArgumentException(); } List avgList = new ArrayList(); double firstSum = 0.0d; for (int i = 0; i < m; i++) { firstSum += nList.get(i); } avgList.add(first..

N개의 측정치가 주어질 때 M개의 이동 평균을 계산하라.

package kwo2002.java; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * Created by kwo2002 on 2015-08-21. */ public class MAverage { public List mAvg(List nList, int m) { if (m > nList.size()) { throw new IllegalArgumentException(); } List avgList = new ArrayList(); for (int i = m - 1; i < nList.size(); i++) { double sum = 0.0d; for (int j = 0; j < m; j++) { sum +..

짝수개의 문자열을 두글자씩 나눈다음 정렬하라.

문제Professor Lew teaches Algorithm course in Sonyusi University (소녀시대학교). It is his first year as a professor, so he spends a lot of time making lecture notes. He'll teach recursion and sorting algorithms in the next class, and he wants to make some examples which will be included in his lecture note.While making some examples for his lecture note, he noticed that one of his work was quite diffic..