본문 바로가기
반응형

알고리즘8

백준 14501 퇴사 - 파이썬(Python) 백준 14501번 https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 정답코드 - dp[i]는 i번째 날까지 일했을 때의 최대 수익이다. - 처음에는 dp의 모든 원소를 0으로 설정한다. - 먼저 현재 날의 최대 수익은, 기존 현재 날의 최대 수익(dp[i])과, 전날까지의 최대 수익(dp[i-1]) 중 더 큰 값으로 설정한다. - 그 후, 현재 날의 상담을 수행하기 위해 필요한 날이 상담 가능한 마지막 날짜를 넘어서지 않는지 체크하여, 넘어설 경우 패쓰한다. - 현재 날의 상담을 수행해서 상담을 마친 날의 최대 수익(dp[i+t-1])은, 그 날의 기존 최대 수익과, 현재 날의 전날.. 2023. 7. 24.
파이썬(Python) 백준 20551번: Sort 마스터 배지훈의 후계자 백준 20551번 https://www.acmicpc.net/problem/20551 20551번: Sort 마스터 배지훈의 후계자 지훈이는 Sort 마스터다. 오랫동안 Sort 마스터 자리를 지켜온 지훈이는 이제 마스터 자리를 후계자에게 물려주려고 한다. 수많은 제자들 중에 후계자를 고르기 위해서 지훈이는 제자들에게 문제 www.acmicpc.net 정답코드 - alist: 정수 A를 받아 정렬한다. - aidx: 정수 A의 위치를 빠르게 알기 위해, {A: 위치} 와 같은 형태의 딕셔너리를 만든다. - 각 정수 D에 대해, alist의 key에 D가 있으면 대응하는 value를 출력하고, 아니면 -1을 출력한다. import sys input = sys.stdin.readline n, m = map(.. 2023. 6. 8.
파이썬 - Python sort sorted 차이 (예시 포함) 파이썬에서 배열 정렬 시 사용할 수 있는 sort()와 sorted()함수의 사용법을 비교해보자. sort() sorted() 결과 원본 데이터를 정렬한다 복사본을 만들어 정렬한다 (원본 유지) 오름차순 정렬 (기본) a.sort() result = sorted(a) 내림차순 정렬 a.sort(reverse = True) result = sorted(a, reverse = True) *a라는 배열을 정렬하고, sorted()의 경우 정렬된 복사본을 result라는 변수에 담는다. 복잡한 조건으로 정렬하기 예를 들어 배열 a의 원소가 a = [(1,2), (3,4)]와 같이 튜플로 이루어진 경우, 다음과 같이 복잡한 조건을 주어 정렬할 수 있다. 0-1. 각 원소의 첫 번째 인자를 기준으로 오름차순 정렬하.. 2023. 5. 15.
백준 14614번 Calculate! - 파이썬(Python) 백준 14614번 https://www.acmicpc.net/problem/14614 정답코드) 시간: 44ms - XOR 연산은 두 번 하면 처음 수로 돌아온다. (예를 들어 3 xor 5를 반복하면 결과는 6 3 6 3 6 3 ..이 나온다) - 따라서 연산 횟수(c)가 짝수일 때와 홀수일 때로 나누어, 최소한으로 연산한 값을 출력한다. a, b, c = map(int, input().split()) if c%2: print(a ^ b) else: print(a ^ b ^ b) 2023. 2. 7.
백준 17450번 과자 사기 - 파이썬(Python) 백준 17450번 https://www.acmicpc.net/problem/17450 정답코드) 시간: 44ms - 각 과자의 가성비를 계산해 최고값을 가진 과자를 출력한다. res, ans = 0, 0 snack = ["S", "N", "U"] for i in range(3): cost, weight = map(int, input().split()) tcost, tweight = cost * 10, weight * 10 money = tcost - 500 if tcost >= 5000 else tcost if (tweight / money) > res: res = tweight / money ans = i print(snack[ans]) 2023. 2. 2.
백준 17127번 벚꽃이 정보섬에 피어난 이유 - 파이썬(Python) 백준 17127번 https://www.acmicpc.net/problem/17127 정답코드) 시간: 44ms - 4개 구간이 연속적으로 놓이므로, 구간 사이의 칸막이 3개 위치를 하나씩 옮겨가며 모든 경우를 다 계산해본다. - 예를 들어 n = 6이고 각 구간의 나무를 O로 표시한다면, 아래처럼 뒤쪽 칸막이부터 차례로 옮긴다. (for문을 이용) O / O / O / O O O O / O / O O / O O O / O / O O O / O O / O O / O / O O O / O O / O O / O (...) - 칸막이 위치, 즉 각 구간의 마지막 원소 인덱스를 i, j, k, l로 두었다. n = int(input()) nums = list(map(int, input().split())) an.. 2023. 1. 31.
반응형