2024/08/01 15

항해99 리부트코스 알고리즘 3주 4일차 백준 31926 밤양갱

https://www.acmicpc.net/problem/31926 def min_time_to_create_song(n): # 초기값 설정 ans = 10 # n이 1일 때 기본적으로 필요한 시간 # 복사 가능한 크기의 기준점 cri = 1 while n >= cri * 2: ans += 1 cri *= 2 return ansdef main(): import sys input = sys.stdin.read n = int(input().strip()) result = min_time_to_create_song(n) print(result)if __name__ == "__main__": main() 달..

카테고리 없음 2024.08.01

항해99 리부트코스 알고리즘 3주 4일차 백준 2847 게임을 만든 동준이

https://www.acmicpc.net/problem/2847 def minimum_decreases(levels): decreases = 0 # 뒤에서 두 번째 요소부터 시작하여 앞쪽으로 탐색 for i in range(len(levels) - 2, -1, -1): if levels[i] >= levels[i + 1]: # 현재 레벨의 점수가 다음 레벨의 점수보다 크거나 같으면 감소시킴 decreases += (levels[i] - levels[i + 1] + 1) levels[i] = levels[i + 1] - 1 return decreasesdef main(): import sys ..

카테고리 없음 2024.08.01

항해99 리부트코스 알고리즘 3주 4일차 백준 14916 거스름돈

https://www.acmicpc.net/problem/14916 def min_coins(n): # 5원 동전을 최대한 많이 사용 count_5 = n // 5 # 남은 금액을 2원 동전으로 거슬러 줄 수 있는지 확인 while count_5 >= 0: remaining = n - (count_5 * 5) if remaining % 2 == 0: count_2 = remaining // 2 return count_5 + count_2 count_5 -= 1 return -1 # 거슬러 줄 수 없는 경우def main(): import sys input = sys.stdin..

카테고리 없음 2024.08.01

항해99 리부트코스 알고리즘 3주 3일차 백준 11722 가장 긴 감소하는 부분 수열

https://www.acmicpc.net/problem/11722 def longest_decreasing_subsequence(arr): n = len(arr) dp = [1] * n # 모든 원소를 1로 초기화 (각각 자기 자신만으로 수열을 이룸) for i in range(1, n): for j in range(0, i): if arr[j] > arr[i]: dp[i] = max(dp[i], dp[j] + 1) return max(dp)def main(): import sys input = sys.stdin.read data = input().split() n = int(data[..

카테고리 없음 2024.08.01

항해99 리부트코스 알고리즘 3주 2일차 백준 1268 임시 반장 정하기

https://www.acmicpc.net/problem/1268 def main(): import sys input = sys.stdin.read data = input().split() n = int(data[0]) # 학생 수 classes = [] index = 1 for i in range(n): student_classes = list(map(int, data[index:index + 5])) classes.append(student_classes) index += 5 # 학생별로 몇 명과 같은 반이었는지 세기 위한 리스트 same_class_count = [0] * n # 각 학생이 다..

카테고리 없음 2024.08.01