반응형

성장일기/알고리즘코드 4

[백준 5585문제] 그리디 알고리즘 - 거스름돈 ( python3)

가장 적게 잔돈을 줘야하니까, 거스름돈중에 큰 수 부터 나눠주고 남은돈을 다시 카운트 하면된다. 380엔을 냈고, 620엔의 거스름돈을 받아야하는데 이때 거스름돈 단위중에 가장 큰 단위부터 사용하면된다. 500엔으로 나눈 수를 count 해주고, 나머지값을 잔돈으로 넣어주고 다시 그다음으로 큰 100엔으로 나눠주다보면 500엔 100엔 10엔을 2번 사용해서 총 4번으로 값을 출력할수있다 n =int(input()) change = 1000- n coins = [500,100,50,10,5,1] count = 0 for coin in coins: count += change // coin change %=coin print(count)

[백준 11399문제] 그리디 알고리즘 - ATM ( python3)

문제를 잘 읽어보니, 어차피 가장 시간의 합의 최솟값을 구하는 것이라서, 가장 적은 시간이 걸리는대로 오름차순 정렬을 해준다음에 차례대로 더해주면 될 것 같아서 아래와 같이 구현했다. n =int(input()) p = list(map(int,input().split())) p.sort() result=0 list = [] for i in range(n): result +=p[i] list.append(result) print(sum(list))

[파이썬코드] 1부터 n까지의 합 구하기 , 제곱의 합 구하기

1부터 연속으로 숫자의 합을 구하기 위해서는 위와 같이 for문을 이용해서 구하면 된다. def sumadd(n): sum =0 for i in range(1, n+1): sum = sum+i return sum print(sumadd(10)) 하지만 우리는 중고등학교 때 수학시간에 1부터 n까지의 합의 공식을 배웠을 것이다 그 공식을 이용해서 다시짜보자 def sumadd(n): for i in range(1 , n+1): sum = n * (n+1) /2 return sum print(sumadd(10)) 이렇게 짜면 훨씬 더 간단하고 빠르게 구할 수 있을 것이다 Q. 1부터 n까지 연속한 숫자의 제곱의 합을 구하는 프로그램을 for 반복문으로 만들어보라. def sumtest(n): s = 0 fo..

반응형