본문 바로가기
Problem Solving/SWEA

[SWEA] 6190. 정곤이의 단조 증가하는 수

by 테리는당근을좋아해 2020. 3. 4.

문제

정곤이는 자신이 엄청난 수학자임을 증명하기 위해, 어떤 규칙 만족하는 수를 찾아보기로 했다.

그 규칙은 단조 증가하는 수인데, 각 숫자의 자릿수가 단순하게 증가하는 수를 말한다.

어떤 k자리 수 X = d1d2…dk 가 d1 ≤ d2 ≤ … ≤ dk 를 만족하면 단조 증가하는 수이다.

예를 들어 111566, 233359는 단조 증가하는 수이고, 12343, 999888은 단조 증가하는 수가 아니다.

양의 정수 N 개 A1, …, AN이 주어진다.

 1 ≤ i < j ≤ N 인 두 i, j에 대해, Ai x Aj값이 단조 증가하는 수인 것들을 구하고 그 중의 최댓값을 출력하는 프로그램을 작성하라.

 

풀이방법

완전탐색으로 해결

 

n개의 숫자가 입력으로 주어졌을 때, 각 숫자의 곱이 단조 숫자인 값을 모두 구하고 

 

이 숫자들 중 최대값을 출력한다.

 

소스코드

package samsung;

import java.util.*;

public class s_6190 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int tc = sc.nextInt();
		
		for(int t = 1; t <= tc; t++) {
			int n = sc.nextInt();
			int[] a = new int[n];
			int max = -1;
			for(int i = 0; i < n; i++) {
				a[i] = sc.nextInt();
			}
			
			for(int i = 0; i < n; i++) {
				for(int j = i + 1; j < n; j++) {
					int val = a[i] * a[j];
					String s = String.valueOf(val);
					int flag = 0;
					for(int k = 1; k < s.length(); k++) {
						if(s.charAt(k-1) > s.charAt(k)) {
							flag = 1;
							break;
						}
					}
					if(flag == 0)
						max = Math.max(max, val);
				}
			}
			System.out.println("#" + t + " " + max);
		}
	}
}

 

'Problem Solving > SWEA' 카테고리의 다른 글

[SWEA] 1222. [S/W 문제해결 기본] 6일차 - 계산기1  (0) 2020.03.04
[SWEA] 7584. 자가 복제 문자열  (0) 2020.03.04
[SWEA] 3750. Digit sum  (0) 2020.03.04
[SWEA] 7853. 오타  (2) 2020.02.29
[SWEA] 5688. 세제곱근을 찾아라  (0) 2020.02.29

댓글