알고리즘 54

백준 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..

이코테 볼링공고르기 파이썬

N, M = map(int, input().split()) balls = list(map(int,input().split())) ball_count_per_weight = [0] * 11 for ball in balls: ball_count_per_weight[ball]+=1 result = 0 for i in range(1, len(ball_count_per_weight)): N-= ball_count_per_weight[i] result+=ball_count_per_weight[i] * N print(result) # 8 5 # 1 5 4 3 2 4 5 2 이 문제의 조건은 1. A와 B 두명이 서로 다른 무게의 볼링공을 골라야하며, 2. 같은 무게의 공이 여러개 있더라도 다른 공이므로 다시 고를수 ..

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

어떻게 공부할까? 프로그래머를 위한「공부론」우리 프로그래머들은 항상 공부해야 합니다. 우리는 지식을 중요하게 여깁니다. 하지만 지식에 대한 지식, 즉 내가 그 지식을 얻은 과정이나 방법 같은 것은 소홀히 여기기 쉽습니다. 따라서 지식의 축적과 공유는 있어도 방법론의 축적과 공유는 매우 드문 편입니다. 저는 평소에 이런 생각에서 학교 후배들을 위해 제 자신의 공부 경험을 짬짬이 글로 옮겨놓았고, 이번 기회에 그 글들을 취합, 정리하게 되었습니다. 그 결실이 바로 이 글입니다. 김창준 (마이크로소프트웨어) 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..