728x90
1번 도서 대여점 운영
class Book(metaclass=ABCMeta):
@abstractmethod
def get_rental_price(self, day):
pass
class ComicBook(Book):
def get_rental_price(self,day):
cost = 500
day -= 2
if day > 0:
cost += 200*day
return cost
class Novel(Book):
def get_rental_price(self,day):
cost = 1000
day -= 3
if day > 0:
cost += 300*day
return cost
2번 지하철 기다리기
def solution(subway_times, current_time):
current_minute = func_a(current_time)
INF = 1000000000
answer = INF
for s in subway_times:
subway_minute = func_a(s)
if subway_minute>=current_minute:
answer = subway_minute - current_minute
break
if answer == INF:
return -1
return answer
3번 경품 당첨자를 구해주세요
def solution(num):
next_num = num
while True:
next_num += 1
length = func_b(next_num)
if length % 2:
continue
divisor = func_a(length//2)
front = next_num // divisor
back = next_num % divisor
front_sum = func_c(front)
back_sum = func_c(back)
if front_sum == back_sum:
break
return next_num - num
4번 합이 k 배가 되는 수
from itertools import combinations
def solution(arr, K):
answer = 0
arr = combinations(arr,3)
for a in arr :
sum_arr = sum(list(a))
if sum_arr % K ==0 : answer +=1
return answer
5번 언제까지 오르막길이야...?!
def solution(arr):
answer = 0
n = len(arr)
dp = [1]*n
for i in range(n) :
for j in range(i) :
if arr[i] > arr[j] :
dp[i] = max(dp[i],dp[j]+1)
answer = max(dp)
return answer
for i in range(n) : # i 를 마지막으로 하는 증가 수열의 길이를 알려고 한다.
for j in range(i) : # i 이전의 값들과 비교한다.
if arr[i] > arr[j] : # 이전 값들이 해당 값보다 작으면 거기에 i 수를 더해서 증가수열을 만들 수 있다.
dp [i] 는 i 를 마지막으로 하는 증가수열의 길이를 저장하고 있으므로 (초기값은 1 )
기존 값과 j 의 dp값(j를 마지막으로 하는 증가수열의 길이) +1 을 비교해서 큰 값으로 갱신한다.
j 값에 i를 증가시켜서 증가하는 수열을 만들려고 하기 때문이다.
반응형
'자기계발 > 그외 준비하는것' 카테고리의 다른 글
[Python]COS_PRO_기출 3회차[1-5]풀이 (0) | 2022.10.26 |
---|---|
[Python]COS_PRO_기출2회차[6-10]풀이 (0) | 2022.10.26 |
[Python]COS_PRO_기출 1회차 [6-10]풀이 (1) | 2022.10.23 |
[Python]COS_PRO_기출 1회차 [1-5]풀이 (0) | 2022.10.22 |
[코테후기]네이버 부스트 캠프 _ 1차 코딩테스트 후기 (0) | 2022.06.27 |