정말 집중의 차이인가? 5분이면 풀 문제를;;;
 
arr=[0]*4
arr= list(map(int, input().split()))
 
arr.sort(reverse=True)
 
cnt = 0
 
def plus(a,b,c):
  global cnt
 
#  if cnt > 100:
#    return 0
 
  
#  print("10:",a, b, c, cnt)
  if a!=b:
    cnt+=1
#    print("00:",a, b, c, cnt)
    return plus(a, b+1, c+1)
  elif a==b and b!=c and a >c:
    cnt+=1
#    print("01:",a, b, c, cnt)
    return plus(a, b, c+2)
  elif c > a or c> b:
    cnt+=1
#    print("02:",a, b, c, cnt)
    return plus(a+1, b+1, c)
 
plus(arr[0], arr[1], arr[2])
 
print(cnt)
 
알고리즘은 머리의 상태에 따라 정말 다르긴 하다.....
이 간단한 것을...-.-;;
 
n, k = map(int, input().split())
arr=[0]*(n+1)
arr = list(map(int, input().split()))
 
#print(arr)
cnt = 0
 
for i in range(n):
#  print("arr[",i,"]=",arr[i])
  if int(arr[i]) >= k:
    cnt=i+1
#    print("i:",i, "cnt:", cnt)
    break
 
if cnt==0:
  cnt=n+1
 
print(cnt)
 
n, s = map(int, input().split())
arr=[0]*(n+1)
arr = list(map(int, input().split()))
 
cnt = 0
 
def part_sum(i, sum):
    global cnt
 
    if i >= n:
        return
    sum = sum+ arr[i]
 
    if sum == s:
        cnt = cnt + 1
    part_sum(i + 1, sum)
 
    sum = sum - arr[i]
    part_sum(i + 1, sum)
    
    
part_sum(0, 0)
print(cnt)
 
 
def count_changes(money, coins):
  memo=[None for _ in range(money+1)]
  memo[0]=0
 
  def dy_program(change):
    for total in range(1, change+1):
      min_val=total
      for coin in coins:
        if total >= coin:
          res=memo[total-coin]
          min_val=min(res, min_val)
      memo[total]=min_val+1
    return memo[change]
  return dy_program(money)
 
mo=int(input())
n=int(input())
arr=[0]*(n+1)
arr=list(map(int, input().split()))
 
print(count_changes(mo,arr)) 
 
부분합 최대 부분합은 이해하는 상태에서 풀면 그나마 손 쉽다
 
 
n=int(input())
do_p, to_p=map(int,input().split())
do_k=int(input())
arr_k=[0]*(n+1)
for i in range(n):
  arr_k[i]=int(input())
 
arr_k.sort(reverse=True)
#print(arr_k)
 
res=0
res1=0
 
def partial_sum(arr, a, b):
  arr = [0] + arr
  partial_sum = [0] * len(arr)
 
  for i in range(1, len(arr)):
    partial_sum[i] = partial_sum[i-1] + arr[i]
 
  partial_sum = partial_sum[1:]
#  print("partial_sum", partial_sum)
    
#  print("total sum", partial_sum[-1])
  
  if((a-1)<0):
    return partial_sum[b]
  else:
    return partial_sum[b] - partial_sum[a-1]
 
#print("aaaa=",partial_sum(arr_k, 0, 1))
 
 
for i in range(n):
  res1=(do_k+partial_sum(arr_k, 0, i))//(do_p+(to_p*(i+1)))
 
  if res < res1:
    res=res1
  elif res > res1:
    break
 
  
print(res)
 
list로 만들어서 몫을 cnt하고 나머지는 재 입력하여 계산
꼭 큰 수별로 해야함
 
mo = int(input())
 
cnt=0
change=[50000, 10000, 5000, 1000, 500, 100, 50, 10]
 
for i in change:
cnt=cnt+mo//i
mo=mo%i 
 
print(cnt)

+ Recent posts