728x90
반응형

Algorithm Problems 125

[백준] [Python] 11399번 ATM - Greedy - [대표예제]

https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net Python import sys n = int(sys.stdin.readline()) arr = list(map(int, sys.stdin.readline().split())) arr.sort() total = 0 ans = 0 for x in arr: #print(ans,ans+x) ans = ans+x total += ans print(total) 풀이 입력 예제 5 3 1 4 3 2 그 때 ans와 ans+x의 변화 an..

Algorithm Problems 2021.06.01

[백준] [Python] 6198번 옥상 정원 꾸미기 - 스택

https://www.acmicpc.net/problem/6198 6198번: 옥상 정원 꾸미기 문제 도시에는 N개의 빌딩이 있다. 빌딩 관리인들은 매우 성실 하기 때문에, 다른 빌딩의 옥상 정원을 벤치마킹 하고 싶어한다. i번째 빌딩의 키가 hi이고, 모든 빌딩은 일렬로 서 있고 오른쪽으 www.acmicpc.net Python import sys arr = [ int(sys.stdin.readline()) for _ in range(int(sys.stdin.readline())) ] stack = [] ans = [0]*len(arr) for i in range(len(arr)): if stack and stack[-1][0]

Algorithm Problems 2021.06.01

[백준] [Python] 1158번 요세푸스 문제 - 큐

https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net Python #요세푸스 문제 from collections import deque n, k = map(int,input().split()) arr = deque([ i for i in range(1,n+1) ]) ans = [] step = 1 while arr: print(arr) if step == k: ans.append(str(arr.popleft())) step = 1 continue step+=1 arr.append(arr.popleft()) print('')

Algorithm Problems 2021.05.30

[백준] [Python] 5430번 AC - 스택

https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net Python import sys for _ in range(int(sys.stdin.readline().rstrip())): cmd = sys.stdin.readline().rstrip() n = int(sys.stdin.readline().rstrip()) arr = sys.stdin.readline().rstrip()[1:-1].split(',') if arr[0] != '': arr = list(map(int, arr)) elif "D" in cm..

Algorithm Problems 2021.05.29

[백준] [Python] 17298번 오큰수 - 스택

https://www.acmicpc.net/problem/17298 17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net Python import sys n = int(sys.stdin.readline().rstrip()) arr = list(map(int, sys.stdin.readline().split())) stack = [] ans = [] for i in range(n-1, -1, -1): if not stack: ans.append(-1) elif stack[-1] > arr[i]: ans.append(stack[-1]..

Algorithm Problems 2021.05.25

[백준] [Python] 17952번 과제는 끝나지 않아! - 스택

https://www.acmicpc.net/problem/17952 17952번: 과제는 끝나지 않아! 성애는 이번 학기에 전공을 정말 많이 듣는다. 이로 인해 거의 매일을 과제를 하면서 보내고 있다. 그런데도 과제가 줄어들 기미가 보이지 않는데, 바로 분단위로 과제가 추가되고 있기 때문이 www.acmicpc.net Python stack = [] ans = 0 for _ in range(int(input())): cmd = list(map(int,input().split())) if cmd[0] == 1: if cmd[2] == 1: ans += cmd[1] else: stack.append([cmd[1],cmd[2]-1]) continue if stack: stack[-1][1] -= 1 if st..

Algorithm Problems 2021.05.23

[백준] [Python] 10799번 쇠막대기

https://www.acmicpc.net/problem/10799 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net Python import sys l = sys.stdin.readline().rstrip() go = 0 ans = 0 l = "-" + l + "-" for i in range(1,len(l)-1): if l[i] == "(" and l[i+1] == ")": ans += go elif l[i] == "(": go += 1 elif l[i] == ")" and l[i-1] != "(": ans+=1 go ..

Algorithm Problems 2021.05.22

[백준] [Python] 2493번 탑 - 스택 - [대표예제]

https://www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net Python import sys n = int(sys.stdin.readline()) top = list(map(int,sys.stdin.readline().split())) ans = [0]*n stack = [(top[0],1)] for i,t in enumerate(top[1:],1): while stack and stack[-1][0] < t: stack.pop() if stack: an..

Algorithm Problems 2021.05.22

[백준] [Python] 14889번 스타트와 링크

https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net Python from itertools import combinations import sys n = int(sys.stdin.readline().rstrip()) arr = [] for _ in range(n): arr.append(list(map(int,sys.stdin.readline().split()))) combi = list(combinations([i for i in range(1,n+1)],n//2)) ..

Algorithm Problems 2021.05.19
728x90
반응형