https://www.acmicpc.net/problem/2908
2908번: 상수
상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두
www.acmicpc.net
방법1. 연산
package s07_string;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class MJ_07_2908 {
public static void main(String[] args) throws IOException{
//입력받고 A B로 변수지정해놓고
//거꾸로수를 크기비교후 A,B 중 출력
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine()," ");
int A = Integer.parseInt(st.nextToken());
int B = Integer.parseInt(st.nextToken());
int a = (A/100)+(((A%100)/10)*10)+((A%100)%10)*100;
int b = (B/100)+(((B%100)/10)*10)+((B%100)%10)*100;
if(a>b) {
System.out.println(a);
}else {
System.out.println(b);
}
}
}
방법2. StringBuilder(),reverse() -Scanner
StringBuilder 생성과 동시에 append() 라는 메소드에 값을 넣기 가능
이때 append() 로 넣어진 값은 타입이 StringBuilder 라는 타입으로 변환된다.
그리고 StringBuilder 타입을 문자열로 반환시키기 위해 toString() 을 써주고
Integer.parseInt() 로 String 을 int 로 타입을 변경시키면 끝이다.
package s07_string;
import java.io.IOException;
import java.util.Scanner;
public class MJ_07_2908_2 {
public static void main(String[] args) throws IOException{
Scanner in = new Scanner(System.in);
int A = in.nextInt();
int B = in.nextInt();
in.close();
A = Integer.parseInt(new StringBuilder().append(A).reverse().toString());
B = Integer.parseInt(new StringBuilder().append(B).reverse().toString());
System.out.print(A > B ? A : B);
}
}
방법2-1. StringBuilder(),reverse() -BufferedReader
차이점은 append() 를 쓰지 않고 바로 객체생성할 때 문자열을 넣을 수 있다는 점이다.
( Scanner 을 사용했을 때는 int 타입으로 받았기 때문에 객체를 생성할 때 append() 메소드를 써야했지만 만약 넣어주려는 인자가 String 타입이면 append() 를 사용할 필요가 없다.)
package s07_string;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class MJ_07_2908_3 {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine()," ");
int A = Integer.parseInt(new StringBuilder(st.nextToken()).reverse().toString());
int B = Integer.parseInt(new StringBuilder(st.nextToken()).reverse().toString());
System.out.print(A > B ? A:B);
}
}
if~else 안쓰고 삼항연산자로 출력가능
'ONLINE JUDGE > 문자열' 카테고리의 다른 글
[백준2941] 크로아티아 알파벳 (0) | 2022.03.18 |
---|---|
[백준5622] 다이얼 (0) | 2022.03.18 |
[백준1152] 단어의 개수 (0) | 2022.03.11 |
[백준1157] 단어 공부 (0) | 2022.03.10 |
[백준2675] 문자열 반복 (0) | 2022.03.09 |
댓글