본문 바로가기

분류 전체보기

(208)
수익[백준 4097] https://www.acmicpc.net/problem/4097  연속합의 최대를 찾는 문제이다. while True: n = int(input()) if n == 0: # 테스트 케이스 종료 조건 break arr = [] for _ in range(n): arr.append(int(input())) # DP 배열 초기화 dp = [0] * n dp[0] = arr[0] max_sum = dp[0] # 최대 수익 for idx in range(1, n): dp[idx] = max(arr[idx], dp[idx - 1] + arr[idx]) max_sum = max(max_sum, dp[idx]) #..
무한 수열[백준 1351] https://www.acmicpc.net/problem/1351 def dpq(n, p, q, memo): if n == 0: return 1 if n in memo: return memo[n] pid = n // p qid = n // q memo[n] = dpq(pid, p, q, memo) + dpq(qid, p, q, memo) return memo[n]n, p, q = map(int, input().split())memo = {}print(dpq(n, p, q, memo))print(memo)
국왕의 방문[백준 2982] https://www.acmicpc.net/problem/2982 문제 조건을 잘 살펴 봐야 하는데 이미 도로에 들어갔을 때 국왕이 사용하는 도로이면 상관없이 사용이 가능하다는 것을 알아야 한다. import sysimport heapqfrom collections import defaultdictdef parse_input(): data = sys.stdin.read().splitlines() N, M = map(int, data[0].split()) A, B, K, G = map(int, data[1].split()) g_path = list(map(int, data[2].split())) graph = defaultdict(list) idx = 3 for _ i..
LG Aimers 5기 후기 2024년 여름 방학 기간에 진행된 해당 경진대회에 참여했다. 이번에도 3,4기와 마찬가지로 팀원들을 대회 게시판(토론방)을 통해서 구했다. 나를 포함해 5명이 팀이 되었는데 중간에 한 명이 나가고 다른 팀원으로 대체 되었다. 아무래도 경진대회 경험이 많이 없는 팀원도 있다보니 잘 방향성을 못 잡고 어렵다 생각하여 나간 거 같았다. 대회 예선 시작전에 팀이 결성되어서 본선 진출이라는 목표를 갖고 대회를 맞이했다. 이번에도 지난 대회랑 같은 주제인 분류 문제였다. 어려운 주제는 아니라 생각할 수도 있지만 상대 평가이기 때문에 대회 참가자들이 모두 능력이 뛰어난 경우에 대회 주제에 상관없이 본선 진출이 어렵다. 왜냐하면 본선 진출 인원이 100명으로 제한되어 있기 때문이다. 팀당 최대 인원이 5명이라서 아무..
데이터·AI를 활용한 물가 예측 경진대회 참여 후기 10월부터 11월 초까지 진행된 물가 예측 경진대회에 참여했다. 대략 1500명 정도 인원이 참여했었고 참가 자격에는 제한이 없었다. 데이콘 플랫폼을 통해서 대회가 진행되었는데 시계열 예측에 관한 대회라 관심이 있어서 눈길이 갔다. 좋은 성적을 내고 싶고 또 이번 대회를 통해 많이 배우고 싶어서 주혁님에게 같이 팀을 하고싶다 메일을 보냈다. 주혁님은 다른 한 분(수림님)과 대회 참여할 계획이여서 거기에 나까지 참여해서 3명이 팀이 되었다. 나는 주로 딥러닝 모델을 사용해서 예측을 진행하고 있었고 주혁님은 머신러닝 모델( Extratree, LGBM...)을 이용해서 예측을 해보고 있었다. 서로간의 모델을 앙상블하여 최종예측을 해보는 방식을 사용해서 괜찮은 성능의 모델이 나왔던 거 같다. 팀 회의는 상의할..
최소 회의실 개수 [백준 19598] https://www.acmicpc.net/problem/19598 heapq를 이용해서 진행되고 있는 강의 중에서 제일 먼저 종료되는 강의들을 찾아내면 된다. import heapq n = int(input()); total = 1; lastend=0 heap =[]; arr =[] for i in range(n): a,b = map(int, input().split()) arr.append((a,b))arr.sort() heapq.heapify(heap)heapq.heappush(heap, arr[0][1]) for start,end in arr[1:] : lastend = heapq.heappop(heap) if lastend
컵라면 [백준 1781] https://www.acmicpc.net/problem/1781 heapq를 잘 사용해서 최대 컵라면 개수를 구해준다. import heapqn = int(input())arr = []for _ in range(n): a, b = map(int, input().split()) arr.append((a, b))arr.sort()heap = []for deadline, cups in arr: heapq.heappush(heap, cups) if len(heap) > deadline: heapq.heappop(heap)print(sum(heap))
URLs [백준 6324] https://www.acmicpc.net/problem/6324 url의 형식을 찾아주는 정규 표현식을 만들어 문제를 해결한다. import redef parse_url(url): # 정규 표현식 정의 pattern = r'^(http|ftp|gopher)://([a-zA-Z0-9._-]+)(:(\d+))?(/(.*))?$' match = re.match(pattern, url) if match: protocol = match.group(1) host = match.group(2) port = match.group(4) if match.group(4) else "" path = match.group(6) if matc..