알고리즘연습

알고리즘

백준 1931번 회의실 배정 파이썬 풀이

[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()) m = [] for _ in range(n): a, b = map(int, input().split()) m.append([a, b]) m.sort(key=lambda x: [x[1], x[0]]) cnt = 1 end_m = m[0][..

알고리즘

백준 16194번 카드 구매하기 2 파이썬 풀이

[Python] 백준 알고리즘 온라인 저지 16194 카드 구매하기 2 https://www.acmicpc.net/problem/16194 16194번: 카드 구매하기 2 첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000) www.acmicpc.net 저번 카드 구매하기 문제에서는 카드 n장을 구매 비용을 최댓값으로 구했다면 이번에는 최솟값을 구하는 문제이다. 코드 import sys input = sys.stdin.readline n = int(input()) p = [0] + list(map(int, input().split())) dp = [False for _ in ra..

알고리즘

백준 1158번 요세푸스 문제 파이썬 풀이

[Python] 백준 알고리즘 온라인 저지 1158 요세푸스 문제 https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 쉽게 설명하자면 원들 돌며 중첩되는 k 번째 사람들을 리스트에서 빼면서 리스트를 비우는 문제로 나머지 개념을 활용하여 원을 돌면 된다. 코드 import sys input = sys.stdin.readline n, k = map(int, input().split()) circle = [i for i in range(1, n+1)] result = [] num = k-1 while len(circle): if num >= l..

알고리즘

백준 11053번 가장 긴 증가하는 부분 수열 파이썬 풀이

[Python] 백준 알고리즘 온라인 저지 11053 가장 긴 증가하는 부분 수열 https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 처음에는 그냥 set으로 중복을 없애고 길이를 출력하는 거라고 생각했다.😅 (그렇게 쉬울 리가 없다고 생각해서 이런 식으로 풀진 않았지만) 수열을 돌면서 더 큰 수가 있다면 큰 순으로 번호를 매긴다고 생각하면 된다. 코드 import sy..

알고리즘

백준 11399번 ATM 파이썬 풀이

[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()) minutes = sorted(list(map(int, input().split()))) result = [] r..

알고리즘

백준 10845번 큐 파이썬 풀이

[Python] 백준 알고리즘 온라인 저지 10845 큐 https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 큐의 구조 이해를 돕는 문제였던 것 같다. FIFO 선입선출에 대해 알고 있다면 쉽게 해결할 수 있었다. 코드 import sys input = sys.stdin.readline def push(x): que.append(x) def pop(): if len(que) == 0: print(-1) else: first = qu..

🚀 새로운 블로그로 이전했습니다.

살펴보러 가기
minjae_4
'알고리즘연습' 태그의 글 목록 (2 Page)