💡문제접근
📌1차 작성한 코드(WA)
import sys
input = sys.stdin.readline
K, N = map(int, input().strip().split())
nums = []
for _ in range(K):
nums.append(int(input()))
nums.sort(key=lambda x : x * 10, reverse=True)
result = []
for i in range(N-K+1):
result.append(nums[0])
for i in range(1, K):
result.append(nums[i])
print(int(''.join(map(str, result))))
- 예제 입력3의 테스트케이스에서 반례가 발생
- 최대 1,000,000,000이므로 문자열을 반복해서 최대한 맞춰준다.
- 이 때, 정수형에
×10
을 처리하는 것이 아니라 문자열에 ×10
을 처리해줘야 한다.
💡코드
import sys
input = sys.stdin.readline
K, N = map(int, input().strip().split())
nums = []
Max = -1
for _ in range(K):
temp = input().strip()
Max = max(Max, int(temp))
nums.append(temp)
for _ in range(N-K):
nums.append(str(Max))
nums.sort(key=lambda x : x * 10, reverse=True)
print(int(''.join(map(str, nums))))
💡소요시간 : 38m