https://swexpertacademy.com/main/code/problem/problemDetail.do
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
접근 방법
이중 반복문을 사용하여 두 수를 곱하고 함수 동작 전 최댓값과 비교하여 가지치기 했다.
곱한 값을 문자열로 변환해서 수의 단위, 각 자리의 숫자 등을 쉽게 알 수 있었다.
한 자리 수는 증가하는 수로 인정하지 않기에 예외 처리해 주어야 한다.
소스 코드
import java.util.*;
import java.io.*;
class Solution {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
for(int t=1; t<=T; t++) {
int N = Integer.parseInt(br.readLine());
int[] n = new int[N];
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
for(int i=0; i<N; i++) {
n[i] = Integer.parseInt(st.nextToken());
}
int max = 0;
for(int i=0; i<N; i++) {
for(int j=i+1; j<N; j++) {
int tmp = n[i]*n[j];
if (max < tmp && ck_str(String.valueOf(tmp)))
max = tmp;
}
}
StringBuilder sb = new StringBuilder();
sb.append("#" + t + " " + (max == 0 ? -1 : max));
System.out.println(sb.toString());
}
}
static boolean ck_str(String str) {
if(str.length() == 1)
return false;
for(int k=1; k<=str.length()-1; k++) {
if(str.charAt(k-1)-'0' > str.charAt(k)-'0') {
return false;
}
}
return true;
}
}
'코테 > 자바' 카테고리의 다른 글
[SWEA] 13428. 숫자 조작 (0) | 2023.05.21 |
---|---|
[SWEA] 6808. 규영이와 인영이의 카드게임 (2) | 2023.05.21 |
[SWEA] 1225. 암호생성 (0) | 2023.05.21 |
[SWEA] 4698. 테네스의 특별한 소수 (0) | 2023.05.18 |
[BOJ] 11725. 트리의 부모 찾기 (0) | 2023.05.18 |