목록전체 글 (229)
DevKim
www.acmicpc.net/problem/1138 1138번: 한 줄로 서기 첫째 줄에 사람의 수 N이 주어진다. N은 10보다 작거나 같은 자연수이다. 둘째 줄에는 키가 1인 사람부터 차례대로 자기보다 키가 큰 사람이 왼쪽에 몇 명이 있었는지 주어진다. i번째 수는 0보다 www.acmicpc.net cnt=0 n=int(input()) l_list=list(map(int,input().split())) result=[0 for i in range(n)] for i in range(n): p=l_list[i] for j in range(n): if(result[j]==0): cnt+=1 if (cnt==p+1): result[j]=i+1 cnt=0 break for i in result: print(..
www.acmicpc.net/problem/1080 1080번: 행렬 첫째 줄에 행렬의 크기 N M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 행렬 A가 주어지고, 그 다음줄부터 N개의 줄에는 행렬 B가 주어진다. www.acmicpc.net 쉬운듯 어려운 요상한 그리디 n,m=map(int,input().split()) A=[] A_list=[] B_list=[] cnt=0 k=-1 for i in range(n): A_list.append(list(input())) # A행렬 for i in range(n): B_list.append(list(input())) # B행렬 def SWAP(n,m): for i in range(n,n+3): for j in ran..
www.acmicpc.net/problem/1946 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net #import sys #input = sys.stdin.readline t=int(input()) list=[] p=0 for i in range(t): del list[:] cnt=0 n=int(input()) for j in range(n): a,b=map(int,input().split()) list.append([a,b]) list=sorted(list,key=lambda x:x[0..
www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net k=input() ans=0 k=k.split('-') for i in k[0].split('+'): ans+=int(i) for i in k[1:]: p=0 for j in i.split('+'): p+=int(j) ans-=p print(ans)
www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net 생각을 많이 할수록 코드가 짧아지는 그리디 k=int(input()) list=[] result=[] for i in range(k): list.append(int(input())) list.sort(reverse=True) for i in range(k): result.append(list[i]*(i+1)) print(max(result))
www.acmicpc.net/problem/1931 1931번: 회의실배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 그리디 알고리즘. n=int(input()) t_list=[] cnt=0 for i in range(n): meet=list(map(int,input().split())) t_list.append(meet) t_list=sorted(t_list,key=lambda x:x[0]) t_list=sorted(t_list,key=lambda x:x[1]) end=0 for i,j in t_list: if(i>=end): cnt+=1 end=j print(cnt)
www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net n,k=map(int,input().split()) money=[int(input()) for _ in range(n)] money.sort(reverse=True) cnt=0 for i in money: if(i>k): continue elif(i==k): cnt+=1 break else: cnt+=k//i k=k%i if(k==0): break..
www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 그리디알고리즘으로 분류되어있는 문제.! 그리디 알고리즘은 현명하게 풀어낼 수록 코드가 짧아진다고 생각한다 n=int(input()) box=0 while(1): if(n%5==0): n=n-5 box+=1 else: n=n-3 box+=1 if(n