반응형
백준 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항 연산을 사용했다.
반응형
'프로그래밍 > 백준 알고리즘 코드' 카테고리의 다른 글
백준 2941번 자바 java 크로아티아 알파벳 [문자열] (0) | 2020.09.29 |
---|---|
백준 5622번 자바 Java 다이얼 (문자열) (0) | 2020.09.29 |
백준 1152번 java 자바 단어의 개수 [문자열] (0) | 2020.09.19 |
백준 1157 java 자바 단어 공부 [문자열] (5) | 2020.09.19 |
백준 2675번 java 자바 문자열 반복 [문자열] (0) | 2020.09.19 |
댓글