그리디

https://www.acmicpc.net/problem/2374 코드import sysinput = sys.stdin.readlinen = int(input())arr = []for i in range(n): a = int(input()) if not arr or arr[-1] != a: arr.append(a)def find_min(arr): # 현재 배열에서 가장 작은 값과 그 인덱스 리턴 min_v = int(1e9)+1 min_idx = -1 for i in range(len(arr)): if min_v > arr[i]: min_v = arr[i] min_idx = i return [min_idx,..
https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=4&contestProbId=AY9QUhl6cfQDFAVF&categoryId=AY9QUhl6cfQDFAVF&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=1 코드for tc in range(1, int(input())+1): n = int(input()) arr = [-1]+list(map(int, input().split()))+[-1] empty = n+1 # 현재 비어있는 자리 # 처음에 자..
https://www.acmicpc.net/problem/1455 코드import sysinput = sys.stdin.readlinen, m = map(int, input().split())board = [list(input()) for _ in range(n)]ans = 0for i in range(n-1, -1, -1): for j in range(m-1, -1, -1): if board[i][j] == '1': # 뒷면 # 뒤집기 for r in range(i+1): for c in range(j+1): board[r][c] = ('0' if board[r][c] == '1'..
https://www.acmicpc.net/problem/1911 코드from math import ceilimport sysinput = sys.stdin.readlinen, l = map(int, input().split())woongs = []for _ in range(n): s, e = map(int, input().split()) woongs.append((s, e))woongs.sort()ans = 0prev = -1_000_000for i in range(n): if prev  prev는 이전에 깔았던 널빤지 중 가장 끝의 널빤지의 끝 위치이다. 그렇기 때문에 prev가 현재 웅덩이의 시작위치보다 오른쪽이라면 prev에서부터 이어서 널빤지를 더 깔면 되고, 아니라면 현재 웅덩..
https://www.acmicpc.net/problem/21943 코드from itertools import combinationsn = int(input())x = list(map(int, input().split()))plus, mul = map(int, input().split())ans = 0def dfs(picked_cnt, remain_x, total): global ans if picked_cnt == 1: # 마지막 덩어리 ans = max(ans, total*sum(remain_x)) return # 하나의 덩어리 고르기 for i in range(1, len(remain_x)-picked_cnt+2): for comb in ..
딜레이레이
'그리디' 태그의 글 목록