본문 바로가기
728x90

백준/그리디30

[백준] #21314 민겸 수 (python) 21314번: 민겸 수 (acmicpc.net) 21314번: 민겸 수 민겸 수 하나가 주어진다. 민겸 수는 대문자 M과 K로만 이루어진 문자열이며, 길이는 3,000을 넘지 않는다. www.acmicpc.net 문제 민겸이는 로마 숫자를 보고 굉장히 흥미롭다고 생각했다. 그래서 민겸이는 새로운 수 체계인 민겸 수를 창조했다. 민겸 숫자는 0 이상의 정수 N에 대해 10N 또는 5 × 10N 꼴의 십진수를 대문자 M과 K로 이루어진 문자열로 표기한다. 10N 꼴의 십진수는 N + 1개의 M으로, 5 × 10N 꼴의 십진수는 N개의 M 뒤에 1개의 K를 이어붙인 문자열로 나타낸다. 즉, 아래 표처럼 나타낼 수 있다. 변환 전 변환 후 1 M 5 K 10 MM 50 MK 100 MMM 500 MMK 1000.. 2022. 3. 16.
[백준] #21758 꿀 따기 (python) 21758번: 꿀 따기 (acmicpc.net) 21758번: 꿀 따기 첫 번째 줄에 가능한 최대의 꿀의 양을 출력한다. www.acmicpc.net # Code n = int(input()) ans=0 a = list(map(int,input().split())) s=[] s.append(a[0]) for i in range(1,n): s.append(s[i-1]+a[i]) for i in range(1,n-1): ans=max(ans,s[n-2]-a[0]+a[i]) for i in range(1, n - 2): ans = max(ans, s[n-1] - a[0] - a[i] + s[n-1] - s[i]) for i in range(1,n-1): ans=max(ans,2*s[i-1]+s[n-2]-s[i.. 2022. 3. 15.
[백준] #16953 A->B (python) 16953번: A → B (acmicpc.net) 16953번: A → B 첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다. www.acmicpc.net 문제 정수 A를 B로 바꾸려고 한다. 가능한 연산은 다음과 같은 두 가지이다. 2를 곱한다. 1을 수의 가장 오른쪽에 추가한다. A를 B로 바꾸는데 필요한 연산의 최솟값을 구해보자. 입력 첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다. 출력 A를 B로 바꾸는데 필요한 연산의 최솟값에 1을 더한 값을 출력한다. 만들 수 없는 경우에는 -1을 출력한다. 예제 입력1 2 162 예제 출력1 5 예제 입력2 4 42 예제 출력2 -1 # Code import sys input = sys.stdin.readline a, b = ma.. 2022. 3. 12.
[백준] #20365 블로그 2 (python) 20365번: 블로그2 (acmicpc.net) 20365번: 블로그2 neighbor 블로그를 운영하는 일우는 매일 아침 풀고 싶은 문제를 미리 정해놓고 글을 올린다. 그리고 매일 밤 각각의 문제에 대하여, 해결한 경우 파란색, 해결하지 못한 경우 빨간색으로 칠한 www.acmicpc.net 문제 neighbor 블로그를 운영하는 일우는 매일 아침 풀고 싶은 문제를 미리 정해놓고 글을 올린다. 그리고 매일 밤 각각의 문제에 대하여, 해결한 경우 파란색, 해결하지 못한 경우 빨간색으로 칠한다. 일우는 각 문제를 칠할 때 아래와 같은 과정을 한 번의 작업으로 수행한다. 연속된 임의의 문제들을 선택한다. 선택된 문제들을 전부 원하는 같은 색으로 칠한다. 예를 들어, 각 문제를 위와 같은 색으로 칠하려고 할 .. 2022. 3. 11.
728x90