728x90
반응형
https://www.acmicpc.net/problem/1422
1422번: 숫자의 신
첫째 줄에 K와 N이 공백을 사이에 두고 주어진다. K와 N은 각각 50보다 작거나 같은 자연수이고, N은 K보다 크거나 같다. 둘째 줄에는 K개의 수가 한 줄에 하나씩 주어진다. 각 수는 1,000,000,000보다
www.acmicpc.net
문제 해결
- 모든 수는 1번 이상씩 사용
- 하지만 더 사용하는 숫자는 오직 하나이고 가장 큰 수일 것이다.(이유는 첫번째는 자리수가 크기 때문이고 두번째는 자리수가 같으면 앞에 큰수가 오는 것이 큰수이기 때문에 많이 사용할 수록 좋다.)
- 따라서 가장 큰 수를 변수로 저장한 다음 n-k 만큼 추가적으로 리스트 안에 저장하면 된다.
- 문제는 숫자 배열이다. 모든 숫자는 $10^{9}$ 이하이기 때문에 숫자를 문자열로 놓고 10번 반복한 숫자들을 보고 큰 수대로 배열하면 된다.
CODE
k, n = map(int, input().split())
nums = []
plus = 0
for _ in range(k):
temp = input()
nums.append(temp)
plus = max(plus, int(temp))
for i in range(n-k):
nums.append(str(plus))
nums.sort(key=lambda x: x*10, reverse=True)
ans = ''.join(nums)
print(int(ans))
728x90
반응형
'알고리즘 > [python] 백준 BOJ' 카테고리의 다른 글
[python] 백준 1911 흙길 보수하기 (0) | 2023.04.05 |
---|---|
[python] 백준 12919 A와 B 2 (0) | 2023.04.05 |
[python] 백준 9576 책 나눠주기 (0) | 2023.04.05 |
[python] 백준 2583 영역 구하기 (0) | 2023.04.04 |
[python] 백준 2636 치즈 (0) | 2023.04.04 |
댓글