본문 바로가기

Algorithm/Greedy27

[파이썬] 백준 1931 : 회의실 배정 (실버1) [파이썬] 백준 1931 : 회의실 배정 (실버1) 1931번: 회의실 배정(1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다.www.acmicpc.net문제풀이0.방향성 생각회의가 끝나야 다음 순번이 들어온다. 끝나는 시간 순으로 정렬한 후 다음 순번은 시작시간이 가장 빠른 것을 찾으면 된다.[[1, 4], [3, 5], [0, 6], [5, 7], [3, 8], [5, 9], [6, 10], [8, 11], [8, 12], [2, 13], [12, 14]]테스트 케이스를 정렬하면 이런식으로 된다. 1. 전체코드n = int(input()) arr = [] for i in range(n): arr.append(list(map(int,input().split()))) arr.sort.. 2023. 6. 6.
[파이썬] 백준 1439 : 뒤집기 (실버5) [파이썬] 백준 1439 : 뒤집기 (실버5) 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모 www.acmicpc.net 문제 풀이 0.방향성 생각 같은 숫자끼리 붙어있는 경우는 한 숫자로 봐도 무방하다 111111 -> 1 : 0회 1100 -> 10 : 1회 1111001 --> 101 : 1회 11001100 --> 1010 : 2회 100101 --> 10101 : 2회 1010100 -> 101010 : 3회 변화량을 체크하든지, 문자열을 치환해서 2로 나눈 몫을 구하든지 하면 된다. 전체 코드 1. 변화량 체크 s = inp.. 2023. 5. 31.
[파이썬] 백준 1343 : 폴리오미노 (실버5) [파이썬] 백준 1343 : 폴리오미노 (실버5) 1343번: 폴리오미노 첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다. www.acmicpc.net 문제 풀이 0. 방향성 생각 .을 기준으로 나눈다. 나누어진 문자열 중 X의 길이별로 구분한다. 1. 전체 코드 word = input() arr = list(word.split('.')) temp = [] goal = True for i in arr: if len(i)%2 == 0: a,b = divmod(len(i),4) s = '' s += 'AAAA'*a s += 'B'*b temp.append(s) else : print(-1) goal = False break if goal : print('.'.join(.. 2023. 5. 28.