전체 글 282

항해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

항해99 리부트코스 알고리즘 3주 1일차 백준 10610 30

https://www.acmicpc.net/problem/10610 def main(): import sys input = sys.stdin.read number = input().strip() # 숫자 중에 0이 하나도 없다면 30의 배수를 만들 수 없음 if '0' not in number: print(-1) return # 숫자들의 합이 3의 배수가 아니라면 30의 배수를 만들 수 없음 if sum(map(int, number)) % 3 != 0: print(-1) return # 숫자들을 내림차순으로 정렬하여 가장 큰 수를 만듦 largest_number = ''.join..

카테고리 없음 2024.08.01

항해99 리부트코스 알고리즘 3주 1일차 백준 1541 잃어버린 괄호

https://www.acmicpc.net/problem/1541 def calculate_min_expression(expression): # '-'로 나눠서 분리 parts = expression.split('-') # 첫 번째 부분은 무조건 더해야 한다 first_part = sum(map(int, parts[0].split('+'))) # 나머지 부분은 모두 뺀다 total = first_part for part in parts[1:]: total -= sum(map(int, part.split('+'))) return totaldef main(): import sys input = sys.stdin.read ..

카테고리 없음 2024.08.01

항해99 리부트코스 알고리즘 3주 1일차 백준 25178 두라무리 휴지

https://www.acmicpc.net/problem/25178 def remove_vowels(word): vowels = {'a', 'e', 'i', 'o', 'u'} return ''.join([char for char in word if char not in vowels])def check_duramari_effect(word1, word2): # 첫 글자와 마지막 글자가 동일한지 확인 if word1[0] != word2[0] or word1[-1] != word2[-1]: return "NO" # 모음을 제거한 후 비교 stripped_word1 = remove_vowels(word1) stripped_word2 = remove_vo..

카테고리 없음 2024.08.01