[백준] 1422번 숫자의 신 ★

Turtle·2023년 10월 3일
0
post-thumbnail

💡문제접근

📌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)	# 문자열을 10번 반복 후 내림차순 정렬
print(int(''.join(map(str, nums))))	# join 메소드를 활용하여 문자열을 정수로 처리

💡소요시간 : 38m

0개의 댓글