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

Life is ninanino·2022년 11월 12일
0

[백준] JAVA

목록 보기
34/37
post-thumbnail

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


두 수를 입력받고 각각 첫번째 째자리와 세번째 자리를 바꿔준다
그리고 두 수를 비교해서 큰 값을 출력한다

값을 뒤집어 주려면 reverse()를 사용해야하는데
StringBuffer나 StringBuilder를 사용해서 reverse() 메소드를 사용한다

String : 문자열 연산이 적고 멀티쓰레드 환경일 경우
StringBuffer : 문자열 연산이 많고 멀티쓰레드 환경일 경우
StringBuilder : 문자열 연산이 많고 단일쓰레드이거나 동기화를 고려하지 않아도 되는 경우

그래서 Scanner에서는 StringBuffer를 사용하고
BufferedReder에서는 StringBuilder를 사용해보았다.

Scanner을 사용했을때 단순히 reverse만 해주면 값이 뒤집히지 않고 에러가 발생한다.

int reverse = Integer.parseInt(sb.reverse().toString());

공백을 string으로 입력받아서 문제가 발생한다
어떻게 나눌까 고민하다가 append()메소드를 추가해서 입력받은 숫자를 더해주면 된다고해서 문제를 해곃했다.

BufferedReader로 사용했을때 공백을 나눠주는건 StringTokenizer를 사용해서 간단하게 구현했다.
공백이 들어간 문자열을 받을땐 버퍼리더가 좀 더 편리한 것 같다

++정답코드

package 백준;// @ author ninaaano

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class b_2908 {
    public static void main(String[] args) throws IOException {
//        Scanner sc = new Scanner(System.in);
//
//        int a = sc.nextInt();
//        int b = sc.nextInt();
//        StringBuffer sb = new StringBuffer(a);
//        StringBuffer sb2 = new StringBuffer(b);
//
//        int reverse = Integer.parseInt(sb.append(a).reverse().toString());
//        int reverse2 = Integer.parseInt(sb2.append(b).reverse().toString());
//
//        if(reverse > reverse2)
//            System.out.println(reverse);
//        else
//            System.out.println(reverse2);

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        StringTokenizer st = new StringTokenizer(br.readLine()," ");

        int a = Integer.parseInt(String.valueOf(new StringBuilder(st.nextToken()).reverse()));
        int b = Integer.parseInt(String.valueOf(new StringBuilder(st.nextToken()).reverse()));

        if(a>b){
            System.out.println(a);
        }else
            System.out.println(b);
    }
}
profile
백엔드 프로그래밍을 공부하고 있습니다. AWS, 클라우드 환경에 대해 관심이 많습니다.

0개의 댓글