본문 바로가기
프로그래밍/백준 알고리즘 코드

백준 2908번 java 자바 상수 (문자열)

by 졸린이 2020. 9. 27.
반응형

백준 2908번 java 자바 상수 (문자열)

세자리 수를 두 개 입력하며 두 수를 뒤에서 부터 읽어 비교하여 큰 수를 출력해 준다.

위 예제를 참고하면 된다.

이 문제는 문자열 단계에 있는 문제지만 정수를 비교하고 출력하므로 int로 선언해도 상관없다.

(String으로 선언해서 하면 뭐.. Integer.parseInt()로 변환해서 한다.)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import java.util.Scanner;
 
//baekjoon_2908 상수
public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        int a = sc.nextInt();
        int b = sc.nextInt();
        
        a = (a % 10* 100 + ((a % 100/ 10* 10 + (a / 100);
        b = (b % 10*100 + ((b % 100/ 10* 10 + (b / 100);
        System.out.println(a>b? a : b);
    }
}
cs

line 8, 9 : 변수 선언 및 입력으로 초기화 (세자리 수 입력)

line 11 : 입력받은 수는 세자리 수고 일의자리가 100이 자리로 100의 자리는 1의 자리로 가야한다.

(a % 10) * 100 은 a를 10으로 나누고 나머지를 뜻하며 일의 자리 수를 추출한 것으로 100을 곱해서 더해주면 100의 자리로 간다.

((a % 100) / 10) * 10 이거는 a를 100으로 나누고 나머지를 의미한다. 즉 xx이런식으로 10의 자리 1의 자리 수가 남아있다.

거기에 /10 을 하면 10으로 나눠서 몫만 남겨 두는 것으로 10의 자리만 추출된다. 거기에 10을 곱해서 더하면 10의 자리는 다시 10의 자리로 간다.

(a / 100) a를 100으로 나누고 몫만 가져온다. 100의자리 수가 추출된다. 그대로 더하면 1의 자리 수로 가게 된다.

line 12 : 11행과 마찬가지로 수를 뒤집는 과정이다.

line 13 : 변환이 끝났으므로 a 와 b를 비교해서 더 큰 값을 출력해준다. if문을 사용해도 되지만 한 줄로 작성하기 위해 3항 연산을 사용했다.

 

 

반응형

댓글