반응형

분류 전체보기 268

[파이썬, Python] 백준 10773: 제로

문제 https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 코드 import sys input = sys.stdin.readline n = int(input()) num_list = [] for _ in range(n): num = int(input()) if num != 0: num_list.append(num) else: del num_list[-1] print(sum(num_list)) 설명 우선 수를 입력받아..

[파이썬, Python] 백준 10828: 스택

문제 https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 코드 import sys input = sys.stdin.readline n = int(input()) deque = [] for _ in range(n): com = input().split() if com[0] == "push": deque.append(com[1]) elif com[0] == "pop": if deque: print(deque.pop()) else: p..

[파이썬, Python] 백준 13305: 주유소

문제 https://www.acmicpc.net/problem/13305 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net 코드 n = int(input()) road = list(map(int, input().split())) cost = list(map(int, input().split())) min_cost = cost[0] ans = 0 for i in range(n-1): if cost[i] < min_cost: min_cost = cost[i] ans += min_cost * road[i..

[파이썬, Python] 백준 11399: ATM

문제 https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 코드 import sys input = sys.stdin.readline n = int(input()) time = sorted(list(map(int, input().split()))) cnt = 0 for i in range(n): cnt += time[i] * (n-i) print(cnt) 설명 먼저 하는 사람의 시간이 짧을수록, 결괏값이 작아지므로 시간을 오름차순으로 정렬해 준다. 이후 시간을 cnt에 더해주는데,..

[파이썬, Python] 백준 1676: 팩토리얼 0의 개수

문제 https://www.acmicpc.net/problem/1676 1676번: 팩토리얼 0의 개수 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net 코드 import math import sys input = sys.stdin.readline n = int(input()) num = str(math.factorial(n)) cnt = 0 for i in range(len(num)-1, -1, -1): if num[i] == '0': cnt += 1 else: print(cnt) break 설명 우선 팩토리얼 함수를 통해 입력받은 수의 팩토리얼을 계산한다. 이후 계산된 수의 뒷자리부터 0을 카운트하고, 0이 아니면 카운트 된..

[파이썬, Python] 백준 11050: 이항 계수 1

문제 https://www.acmicpc.net/problem/11050 11050번: 이항 계수 1 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net 코드 from math import factorial n, k = map(int, input().split()) ans = factorial(n) / (factorial(k)*(factorial(n-k))) print(int(ans)) 설명 기본 모듈 math에 있는 팩토리얼 함수를 통해서 문제를 풀이했다. 이항 계수의 식은 다음과 같다. ​따라서 식에 맞춰 계산을 해서 출력해 주면 된다.

[파이썬, Python] 백준 2609: 최대공약수와 최소공배수

문제 https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 코드 import math x, y = map(int, input().split()) print(math.gcd(x, y)) print(math.lcm(x, y)) 설명 math 모듈을 활용하여 두 수의 최대공약수와 최소공배수를 출력했다.

[파이썬, Python] 백준 1931: 회의실 배정

문제 https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 코드 import sys input = sys.stdin.readline n = int(input()) res = [] for i in range(n): a, b = map(int, input().split()) res.append((a,b)) res.sort(key=lambda x: (x[1],x[0])) cnt = 0 end_time = 0 for i,j in res: if i >= end_time: cnt += 1 end_time = j print(cnt) 설명 우선 각 값을 입력받고, key를 이용해..

[파이썬, Python] 백준 11047: 동전 0

문제 https://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 코드 import sys input = sys.stdin.readline n,k = map(int,input().split()) coin = [] ans = 0 for _ in range(n): coin.append(int(input())) coin.sort(reverse = True) for i in coin: if k >= ..

[파이썬, Python] 백준 1037: 약수

문제 https://www.acmicpc.net/problem/1037 1037번: 약수 첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되 www.acmicpc.net 코드 import sys input = sys.stdin.readline n = int(input()) num = list(map(int, input().split())) if n == 1: print(num[0]**2) else: print(min(num)*max(num)) 설명 일반적인 입력의 경우 num 값의 최솟값과 최댓값의 곱이 정답이다. 예제 2와 같은 경우가 예외적인 케이..

반응형