- 분해합
https://www.acmicpc.net/problem/2231
간단하쥬?
n = int(input())
result = 0
for i in range(1, n+1):
nums = list(map(int, str(i)))
result = sum(nums) + i
if result == n:
print(i)
break
if i == n:
print(0)
- 일곱 난쟁이
https://www.acmicpc.net/problem/2309
combinations은 정말 유용하다. 내장함수를 잘 알고 있는 것은 중요하다!
import itertools
array = [int(input()) for _ in range(9)]
for i in itertools.combinations(array, 7): # 해당 배열을 7명 중복없이 뽑아준다.
if sum(i) == 100: # 그합이 100이라면
for j in sorted(i): # 그 7명을 오름차순으로 정렬후 출력한다.
print(j)
break #그 후 반복문 탈출
정렬 후 sum!
n = int(input()) # 첫째줄 입력
peoples = list(map(int, input().split())) # 기다리는 사람들 리스트 형태로 입력 받음
peoples.sort() # 작은 순서대로 정렬
answer = 0 # 정답 변수를 0으로 만듭니다.
for x in range(1, n+1):
answer += sum(peoples[0:x]) # 리스트의 0번째 수부터 x번째 수까지를 더해줍니다.
print(answer) # 정답 제출
- 1,2,3 더하기
https://www.acmicpc.net/problem/9095
dp문제!
T = int(input())
for i in range(T) :
n = int(input())
dp = [0]*(n+1)
if n == 1 :
print(1)
elif n == 2 :
print(2)
elif n == 3 :
print(4)
else :
dp[1] = 1
dp[2] = 2
dp[3] = 4
for j in range(4,n+1) :
dp[j] = dp[j-1] + dp[j-2] + dp[j-3]
print(dp[n])
- 소트인사이드
https://www.acmicpc.net/problem/1427
easy..
n = int(input())
li = []
for i in str(n):
li.append(int(i))
li.sort(reverse=True) # 내림차순
for i in li:
print(i,end='')