문제출처: SW Expert Academy
단조증가하는 수 중 최댓값을 출력하라
# pass
import sys
sys.stdin = open('input.txt')
# 1 ≤ i < j ≤ N 인 두 i, j에 대해,
# Ai x Aj값이 단조 증가하는 수인 것들을 구하고
# 그 중의 최댓값을 출력하는 프로그램을 작성하라.
def search(number):
# 숫자 str로 바꿈
number_str = str(number)
# 숫자 길이만큼 반복
for char in range(len(number_str)):
# 비교할 자리들이 숫자길이 넘지않으면
if char+1 < len(number_str):
# 지금 숫자가 다음숫자보다 작으면 멈춰!
if number_str[char] > number_str[char+1]:
break
# 다음숫자가 같거나 크고 + 비교하고 있는 다음숫자가 마지막숫자라면
if char+1 == len(number_str)-1:
result.append(int(number_str))
return result
T = int(input())
for tc in range(1, T+1):
N = int(input())
arr = list(map(int, input().split()))
mix = []
numbers = []
result = []
# 각 자리 곱한거 mix에 넣기
for i in range(N):
for j in range(N):
if j > i and j < N:
mix.append(arr[i] * arr[j])
# 2자리 이상인 숫자들만 number에 저장
for k in range(len(mix)):
if mix[k] >= 10:
# 단조증가인지 확인
search(mix[k])
if result:
print("#{} {}".format(tc, max(result)))
else:
result = -1
print("#{} {}".format(tc, result))