본문 바로가기
  • 비둘기다
  • 비둘기다
  • 비둘기다

분류 전체보기53

[완전 탐색] 백준 14501번 (파이썬) : 퇴사 date = int(input()) t = [] p = [] max_gain = [] for _ in range(date): ti, pi = map(int, input().split()) t.append(ti) p.append(pi) for _ in range(date + 1): max_gain.append(0) for i in range(date-1, -1, -1): if t[i] + i > date: max_gain[i] = max_gain[i+1] else: max_gain[i] = max(max_gain[i+1], max_gain[t[i]+i] + p[i]) print(max_gain[0]) 먼저 예제 입력을 따라 date 변수를 입력받아줍니다. 그리고 퇴사 전 남은 날짜에 따라 상담 시간과 이익.. 2023. 3. 17.
[완전 탐색] 백준 17626번 (파이썬) : Four Squares 문제 해석을 하는 것은 어렵지 않았습니다. 요약하가면 아무 숫자나 입력받고 그 숫자를 최대 4개 이하의 제곱수의 합으로 나타내기만 하면 된다는 것입니다. import math def four_squares(n): if int(math.sqrt(n)) == math.sqrt(n): return 1 for i in range(1, int(math.sqrt(n)) + 1): if int(math.sqrt(n - pow(i, 2))) == math.sqrt(n - pow(i, 2)): return 2 for i in range(1, int(math.sqrt(n)) + 1): for j in range(1, int(math.sqrt(n - pow(i,2))) + 1): if int(math.sqrt(n - pow.. 2023. 3. 16.
[완전 탐색] 백준 16439 (파이썬) : 치킨치킨치킨 간단한 문제입니다. 선호도와 만족도의 관계를 조합을 바탕으로 이해하는 것이 관건이라고 할 수 있습니다. 고리 회원과 메뉴가 몇 개든 상관없이 치킨은 세 가지 종류만 시킬 수 있습니다. 그래서 이를 조합으로 경우의 수를 나열하여 각 회원이 경우의 수로 선택된 메뉴에 대한 선호도 중 가장 높은 값이 해당 경우에 수에 대한 그 회원의 만족도가 되는 것입니다. from itertools import combinations n,m = map(int,input().split()) prefer = [list(map(int,input().split())) for i in range(n)] result = 0 for combi in combinations(range(m),3): satisfy_sum = 0 for r i.. 2023. 3. 14.
[완전 탐색] 백준 1969번 (파이썬) : DNA 우선 위 문제 같은 경우에는 문제를 해석하는 것이 어려웠습니다. 특히 문제에서 정의하는 hamming distance를 밑의 예시 출력과 비교했을 때 제가 이해한 것과 맞지 않아 힘들었습니다. 여러 블로그를 통해 hamming distance를 찾아본 결과 결론은 다음과 같습니다. 해밍 거리는 특정 개수의 문자열이 같아지게 하기 위해 바꿔야 하는 문자의 수를 의미합니다. 예를 들어 AAA와 ATA라는 문자열이 있을 때 해밍 거리는 T를 A로만 바꾸면 두 문자열이 완전히 같아지기 때문에 가운데에서 해밍 거리가 1 발생한다고 할 수 있습니다. 그렇다면 문자열이 2개 이상일 때는 모든 문자열의 길이가 같다는 가정 하에 이들을 인덱스 별로 값을 비교하여 가장 빈도수가 높은 문자를 기준으로 해밍 거리가 발생하는 .. 2023. 3. 13.