본문 바로가기

Algorithm42

[그리디] 무지의 먹방 라이브 (파이썬) - 아직 미완성... 회전판에 먹어야 할 N개의 음식이 있다. 각 음식에는 1부터 N까지 번호가 붙어있으며, 각 음식을 섭취하는 데 일정 시간이 소요된다. 다음과 같은 방법으로 음식을 섭취한다. 1번 음식부터 먹기 시작하며, 회전판은 번호가 증가하는 순서대로 음식을 무지 앞으로 가져다 놓는다. 마지막 번호의 음식을 섭취한 후에는 회전판에 의해 다시 1번 음식이 무지 앞으로 온다. 무지는 음식 하나를 1초 동안 섭취한 후 남은 음식은 그대로 두고, 다음 음식을 섭취한다. 무지가 먹방을 시작한 지 K초 후에 네트워크 장애로 인해 방송이 잠시 중단되었다. 네트워크 정상화 후 다시 방송을 이어나갈 때, 몇 번 음식부터 섭취해야 할까? 예시 케이스는 잘 돌아가는데 채점하면 다 틀린다.... 🤮 일단 내가 생각한 아이디어는, 0) 인덱.. 2022. 7. 16.
[그리디] 볼링공 고르기 (파이썬) A, B 두 사람이 볼링을 치고 있다. 두 사람은 서로 무게가 다른 볼링공을 고르려고 한다. 같은 무게의 공이 여러 개 있을 수 있지만, 서로 다른 공으로 간주한다. 두 사람이 볼링공을 고르는 경우의 수를 구하는 프로그램을 작성하세요. #개수 최대 무게 n, m = map(int, input().split()) #각 볼링공 무게 k = list(map(int, input().split())) #두 사람이 볼링공을 고르는 경우의 수 #(단, 서로 무게가 달라야 함) result = 0 #1번 공과 그 다음 공을 비교해보면서 무게가 다를 때만 result += 1 i = 0 j = i + 1 while i < n: j = 1 while j < n: if k[i] != k[i+j]: result += 1 # .. 2022. 7. 16.
[그리디] 만들 수 없는 금액 (파이썬) N개의 동전을 이용하여 만들 수 없는 양의 정수 금액 중 최솟값을 구하는 프로그램을 작성하세요. n = int(input()) coins = list(map(int, input().split())) coins.sort() print(min(coins)) result = 0 if min(coins) != 1: result = 1 elif min(coins) == 1: coin = coins[:n-1:] i = 0 sum = 0 while i= 2: result = sum + 1 elif p == 1: result = max(coins) + 1 print(result) 1. 가지고 있는 코인들 중 가장 적은 수가 1보다 크다면, 만들 수 없는 최소 금액은 '1' 2. 가지고 있는 코인들 중 가장 적은 수가 .. 2022. 7. 16.
[그리디] 문자열 뒤집기 (파이썬) 0과 1로만 이루어진 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 할 수 있는 행동은 연속된 하나 이상의 숫자를 잡고 모두 뒤집는 것이다. (1을 0으로 또는 0을 1로) 해야 하는 행동의 최소 횟수를 구하세요. s = list(input()) cnt = 0 print(s) #1 뭉텡이 cnt_1 = 0 #0 뭉텡이 cnt_0 = 0 if s[0] == '1' : cnt_1 += 1 elif s[0] == '0' : cnt_0 += 1 i=0 for i in range(len(s)-1): if s[i] != s[i+1]: if s[i+1] == '1': cnt_0 += 1 elif s[i+1] == '0': cnt_1 += 1 print(cnt_1, cnt_0) print(min(cnt_1,.. 2022. 7. 16.