전체 글

읽기 쉬운 코드를 짜기 위해 노력합니다. 좋은 코드는 단순하고 이해하기 쉬워야 한다고 생각합니다.
배경https://www.acmicpc.net/problem/1931   코드import sysinput = sys.stdin.readlinen = int(input())meeting = []for i in range(n): start, end = map(int, input().split()) meeting.append((start, end))meeting.sort(key=lambda x: (x[1], x[0]))time = 0cnt = 0for start, end in meeting: if start >= time: cnt += 1 time = endprint(cnt)  설명시작과 끝나는 시간을 리스트에 담아준다. 문제를 풀기 위해서 필요한 값은 언제 끝나냐이다..
배경https://www.acmicpc.net/problem/11047    코드import sysinput = sys.stdin.readlinen, k = map(int, input().split())coins = list()for _ in range(n): coins.append(int(input()))coins.sort(reverse=True)result = 0for coin in coins: if k >= coin: result += k // coin k %= coin if k   설명대표적인 그리디 문제이다. 그리디 문제란그리디 알고리즘(탐욕 알고리즘)은 문제를 해결할 때 각 단계에서 최적이라고 생각되는 선택을 하는 방식입니다. 즉, 현재 단계에서..
배경https://www.acmicpc.net/problem/16139  코드import sysinput = sys.stdin.readlinename = input().strip()n = int(input())arr = [[0 for i in range(26)] for i in range(len(name))]arr[0][ord(name[0]) - 97] = 1for i in range(1, len(name)): arr[i][ord(name[i]) - 97] = 1 for j in range(26): arr[i][j] += arr[i - 1][j]for i in range(n): a = input().split() if int(a[1]) > 0: res = a..
정보처리기사 실기 58점으로 떨어지고 실기를 미뤘더니 필기가 만료되었다또 공부해야하는 시간이 아까워.. 이번에는 한번에 둘 다 통과되게 집중해서 공부해야 겠다 고로 5월달 목표를 정하자면 정보처리기사 5/15 필기 합격저번 달에 못한 백준 골드3다른 자격증 알아보기로 정하겠다(sql 자격증이나 aws)
코드first_string = input()second_string = input()h,w = len(first_string), len(second_string)cache = [[0]*(w+1) for _ in range(h+1)]for i in range(1, h+1): for j in range(1, w+1): if first_string[i-1] == second_string[j-1]: cache[i][j] = cache[i-1][j-1]+1 else: cache[i][j] = max(cache[i][j-1], cache[i-1][j])print(cache[-1][-1])  설명두 개의 string을 2차원 배열로 비교하는 것으로..
배경아따 포도주를 저렇게 많이 먹을 수 있는게 부럽다시식이라면 꽁짜겠지 포도주로 취해보고 싶다초록병 이스 마이 라이프 https://www.acmicpc.net/problem/2156  코드n=int(input())drink = []for _ in range(n): drink.append(int(input()))dy=[0]*10001drink.insert(0,0)dy[1] = drink[1]dy[2] = drink[1]+drink[2]dy[3] = max(drink[3]+drink[1], drink[3]+drink[2], dy[2])for i in range(4, n+1): dy[i] = max(dy[i-3]+drink[i]+drink[i-1], drink[i]+dy[i-2], dy[i-1])..
코드n=int(input())dy=[0]*1001ls=list(map(int,input().split()))ls.insert(0,0)for i in range(1, n+1): for j in range(i): if ls[i] > ls[j]: dy[i] = max(dy[i], dy[j]+1)print(max(dy))  설명dynamic list에는 해당 칸에 가장 큰 증가수열의 값을 넣습니다.앞의 숫자보다 크다면 증가 수열을 만들 수 있으므로 해당 dy list 안에 있는 가장 큰 증가수열에 +1을 해주면 됩니다 백준에 있는 예시인 10 20 10 30 20 5020의 경우 앞의 10보다 크기에 10이 만들 수 있는 가장 큰 증가수열 1에 +1을 더해줍니다30의 경우 ..
Django 페이지네이션 구현 코드Params limit = int(request.query_params.get('limit', '15')) page = int(request.query_params.get('page', 1)) offset = max(page -1, 0 ) * limit next_offset = max(page, 1) * limit Use offsetUse offset for list slicing if there are objects or lists # You Can use this pattern to objects or another list review_list = [review for owner_place..
두잇 두두
두두 DB