728x90

분류 전체보기 274

1026 보물

1026번: 보물 (acmicpc.net) 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net N = int(input()) A = list(map(int, input().split())) B = list(map(int, input().split())) S = 0 A.sort() B.sort(reverse = True) for i in range(N): S += A[i] * B[i] print(S) 꽤나 간단했던 이번 문제 A와 B의 배열을 재정렬해서 그 곱과 합을 최소로 하는 문제였다. 그나마 애를 먹었..

1476 날짜 계산

1476번: 날짜 계산 (acmicpc.net) 1476번: 날짜 계산 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타 www.acmicpc.net 어제 했던 브루트포스 문제를 오늘도 해봤다.. 정답률이 높았던 문제인데.. 맞긴맞았다. 하지만 코드를 더 짧게 할 필요가 있어 보인다. E,S,M = map(int, input().split()) i = 0 while True: if (E % 15 == 0): E = 0 if (S % 28 == 0): S = 0 if (M % 19 == 0): M = 0 if (i != 0 and i % 15 == E and i % 2..

1436 영화감독 숌

1436번: 영화감독 숌 (acmicpc.net) 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net N = int(input()) first = 666 while N != 0: if ('666' in str(first)): N -= 1 if (N == 0): break first += 1 print(first) 간단한 문제였는데 아이디어 생각을 못 해서 오래걸렸다.. 666이라는 문자열만 포함되면 되고 브루트포스 알고리즘 => 모~~~~~~든 수 다 참조! 이므로 first를 하나하나 더해서.. 667 668..

1966 프린터 큐

1966번: 프린터 큐 (acmicpc.net) 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net tnum = int(input()) temp = [] for _ in range(tnum): N,M = map(int, input().split()) pr = list(map(int, input().split())) temp = [0 for _ in range(N)] temp[M] = 1 count = 0 while True: if pr[0] == max(pr): count += 1 if temp[0] != 1: pr..

11047 코인

11047번: 동전 0 (acmicpc.net) 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()) temp = [] result = 0 for i in range(N): temp.append(int(input())) for i in range(N - 1, -1, -1): if K // temp[i] >= 1: result += K // temp[i] K -= K // temp[i] * temp..

10773 제로

10773번: 제로 (acmicpc.net) 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net K = int(input()) result = 0 temp = [] for _ in range (K): a = int(input()) if a != 0 : temp.append(a) else: temp.pop(len(temp) - 1) for i in temp: result += i print(result) 0이 나올 때마다 list에 있던 값 중 하나를 삭제하고 모든 값을 더하는 문제..

7568 덩치

7568번: 덩치 (acmicpc.net) 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net N = int(input()) list = [] result = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] for _ in range(N): x,y = map(int, input().split()) list.append([x, y]) for i in range(N): f..

1427 소트 인사이드

1427번: 소트인사이드 (acmicpc.net) 1427번: 소트인사이드 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net N = int(input()) array = [] while N >= 10: array.append(N % 10) N = N // 10 array.append(N) array.sort() i = 0 for _ in array: print(array[len(array) - i - 1], end='') i += 1 정렬을 거꾸로 해야 하는 문제였는데.. 우선 파이썬에서 배열을 만들 때 2143 -> for문에서 넣으면 한글자마다 다르게 취급됨 을 몰랐다. 그래서 고친 코드는 N = int(input()..

카테고리 없음 2022.08.07

11399 ATM

11399번: ATM (acmicpc.net) 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net N= int(input()) result = 0 nList = list(map(int, input().split())) nList = sorted(nList) i = N while i > 0 : result += nList[N - i] * i i -= 1 print(result) 저번 문제로 된통 당하고 이번 문제는 비교적 쉬운 편이었다. 그리디 알고리즘이 그 안의 구조가 어찌 됐건 내가 구해야되는 정보만 구하면 되는 특성을 지녔는데 이 문제도 그..

BOJ 1931 회의실

N = int(input()) time = [] # 배열 넣을 수 있는 리스트 만듦 for _ in range(N): start, end = map(int, input().split()) time.append([start, end]) time = sorted(time, key=lambda a: a[0]) # 시작 시간을 기준으로 오름차순 time = sorted(time, key=lambda a: a[1]) # 끝나는 시간을 기준으로 다시 오름차순 last = 0 # 회의의 마지막 시간을 저장할 변수 conut = 0 # 회의 개수를 저장할 변수 for i, j in time: if i >= last: # 시작시간이 회의의 마지막 시간보다 크거나 같을경우 conut += 1 last = j print(c..

728x90