본문 바로가기
알고리즘 문제연습/기초 알고리즘

[026] 상수 (백준 2908번)

by 은z 2021. 6. 15.

문제

- 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다.

상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 것이다.

두 수가 주어졌을 때, 상수의 대답을 출력하는 프로그램을 작성하시오.

 

 

입력 : 734 893

정답: 437

 

보완할 점

 

 

소스코드

package AlgorithmEasy;

import java.util.Scanner;

public class Algorithm26 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		String num1, num2;
		String bignum = null;
		
		System.out.println("두 수를 입력하세요");
		String inputnum = sc.nextLine(); //nextLine으로 해야 띄어쓰기 까지 읽힘
		//System.out.println(inputnum);
		//문자열 자르기
		num1 = inputnum.substring(0, 3);
		num2 = inputnum.substring(4);
		
		// 수 검사하기
	Lable: for(int i = 2; i >= 0; i--) {
			for(int j = 2; j >= 0; j--) {
				if(i == j) {
					if((num1.charAt(i) - '0') > (num2.charAt(j) - '0')) {
						bignum = num1;
						break Lable;
					}else if((num1.charAt(i) - '0') < (num2.charAt(j) - '0')) {
						bignum = num2;
						break Lable;
					}else { //같다면~
						break;
					}
					
				}
			}
		}
	
	
	//큰수 출력하기
	System.out.print("상수가 선택한 큰 수 >> ");
	for(int i = 2; i >= 0; i--) {
		System.out.print(bignum.charAt(i));
	}

	}

}

댓글