본문 바로가기
728x90

그리디11

[백준] 2170번: 선 긋기 - python https://www.acmicpc.net/problem/2170 2170번: 선 긋기 첫째 줄에 선을 그은 횟수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 다음 N개의 줄에는 선을 그을 때 선택한 두 점의 위치 x, y (-1,000,000,000 ≤ x < y ≤ 1,000,000,000)가 주어진다. www.acmicpc.net 처음 작성한 아이디어 : 시작 기준으로 정렬 후 low, high 값을 저장하면서 차이를 계산해나가는 방식. 75퍼에서 틀림 발생 n = int(input()) arr = [] for i in range(n): a, b = map(int, input().split()) arr.append([a,b]) arr.sort() #시작 기준 정렬 cnt = arr[0][1].. 2024. 4. 2.
[백준] 11000번: 강의실 배정 - python https://www.acmicpc.net/problem/11000 11000번: 강의실 배정 첫 번째 줄에 N이 주어진다. (1 ≤ N ≤ 200,000) 이후 N개의 줄에 Si, Ti가 주어진다. (0 ≤ Si < Ti ≤ 109) www.acmicpc.net 처음보고 회의실 문제랑 비슷하다고 생각해서 그 메커니즘으로 정렬 후 arr에 배열이 없을때까지 제거하면서 cnt를 증가시켜주는 방식으로 코드를 구현했다. 그러나 시간초과가 발생하면서 뇌정지가 왔다. 처음 짠 코드 n = int(input()) arr = [] for i in range(n): start, end = map(int, input().split()) arr.append((start, end)) arr.sort(key=lambda x:.. 2024. 3. 28.
[백준] 15903번: 카드 합체 놀이 - python https://www.acmicpc.net/problem/15903 15903번: 카드 합체 놀이 첫 번째 줄에 카드의 개수를 나타내는 수 n(2 ≤ n ≤ 1,000)과 카드 합체를 몇 번 하는지를 나타내는 수 m(0 ≤ m ≤ 15×n)이 주어진다. 두 번째 줄에 맨 처음 카드의 상태를 나타내는 n개의 자연수 a1, www.acmicpc.net 뭐지 실버 1인데 맛이 없던 문제였다. 방금 타일이 더 어려웠네 전형적인 그리디 문제 이쯤되면 그리디가 정렬인가 헷갈린다 입력 받고 -> 정렬 -> 값 업데이트 -> 종료 n, m = map(int, input().split()) arr = list(map(int, input().split())) for i in range(m): arr.sort() game .. 2024. 3. 28.
[백준] 1541번: 잃어버린 괄호 - python https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 사실 처음에 이게 어떻게 -35가 되는지 의문이었다. 55-50+40 55-5(0+40) = -145가 아닌가.. 라는 식으로 창의력 테스트하다가 단순히 분리하면 된다는 사실을 파악하고 코드를 작성했다. 우선 -를 제일 나중에 하는게 최소값을 찾을 수 있어서 먼저 - 기준으로 분리를 진행하였다. 배열에는 +가 들어가있는 집합으로 나눠지게 되겠고, 이제 각자 집합을 last라는 리스트를 생성해.. 2024. 3. 27.
728x90