본문 바로가기
백준(Baekjoon)

[백준] 2908번: 상수 - 자바

by IT 정복가 2022. 5. 19.
728x90

https://www.acmicpc.net/problem/2908

 

2908번: 상수

상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두

www.acmicpc.net


[문제]


[코드]

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int A = sc.nextInt();
		int B = sc.nextInt();
		
		String a = Integer.toString(A);
		String b = Integer.toString(B);
		
		int a1 = a.charAt(0)-'0';
		int a2 = (a.charAt(1)-'0')*10;
		int a3 = (a.charAt(2)-'0')*100;
		int asum = a1+a2+a3;
		
		int b1 = b.charAt(0)-'0';
		int b2 = (b.charAt(1)-'0')*10;
		int b3 = (b.charAt(2)-'0')*100;
		int bsum = b1+b2+b3;
		
		if(asum < bsum)
			System.out.println(bsum);
		else 
			System.out.println(asum);
		sc.close();
	}
}

[설명]

1. 상수 A,B를 입력 받는다.

2. 수를 반대로 바꿔야 하기때문에 상수 A,B를 문자열로 바꿔주어야한다. 그렇기 때문에 정수형을 형 변환시켜주는Integer.toString();를 사용한다.

3. 그러면, 상수 A,B가 문자열 a,b로 바뀌었다. 문자열로 바뀐 a,b를 한글자씩 뽑아 순서를 바꿔주어야 한다.

4. 한글자씩 뽑기위해 a.charAt();을 사용해야한다.

5. 상수는 무조건 세 자리 수라고 문제에서 주었기때문에 글자 수는 0번째,1번째,2번째 밖에 없다.

6. 0번째는 글자는 1의 자리수가 되어야 하기때문에 그냥 냅두고, 1번째 글자는 10의 자리 수가 되어야 하기때문에 10을 곱해서 정수 값에 넣어준다. 2번째 글자는 100의자리 수가 되어야 하기때문에 100을 곱해서 정수 값에 넣어준다.

7. asum, bsum 값에 구한 수를 다 더해서 bsum이 더 크다면 bsum을 출력하고 아니면 asum을 출력하도록 해준다. 

 

이렇게 풀으라고 내주는 문제는 아닌거 같은데 풀기만 하면 되겠지...?


[결과]

 

728x90