[Java] 백준 2908번: 상수

hansung's·2024년 2월 20일
0

문제 url:
상수

문제:

👍 풀이 방법

  • 2가지 방법으로 진행해보았다.
    • 문자열로 받은 후 해당 문자를 reverse() 메서드를 이용해 역순으로 구하기
    • 정수형으로 받은 후 100의 자리와 일의 자리를 나누어 구한 후, 이를 바꿔주는 방식

🐱‍👤 문제 풀이

1번쨰 방식


import java.io.*;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

//        ver.1 문자열로 받은 후 해당 문자를 reverse() 메서드를 이용해 역순으로 구하기
        StringTokenizer st = new StringTokenizer(br.readLine());
        int a = Integer.parseInt(new StringBuilder().append(st.nextToken()).reverse().toString());
        int b = Integer.parseInt(new StringBuilder().append(st.nextToken()).reverse().toString());

        System.out.println(a > b ? a:b);

    }
}

문제풀이

  • 먼저 StringTokenizer를 이용해 공백으로 나눠진 숫자를 받도록 진행

    • reverse()메서드는 아쉽지만 String 클래스에서는 사용할 수 없다.
    • 그래서 reverse()메서드를 제공하는 StringBuffer or StringBuilder 객체에 대입하여 사용한다.
  • 여기서 주의!

    • Integer.parseInt()는 문자열을 정수로 변환하는 메서드로 반드시 ()안에는 문자열이 들어가야 한다.

    • 하지만 StringBuilder는 문자열을 가지고 있을뿐, 직접적인 문자열이 아니므로 뒤에 .toString()을 해서 문자열로 만들어 줘야 가능하다.
      - StringBuilder는 java.lang에 속한 클래스로 문자열을 조작하기 위해 사용

      2번쨰 방식


      import java.io.*;
      import java.util.StringTokenizer;
      public class Main {
         public static void main(String[] args) throws IOException {
             BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
      //        ver.2
             StringTokenizer st = new StringTokenizer(br.readLine());
             int a = Integer.parseInt(st.nextToken());
             int b = Integer.parseInt(st.nextToken());
      
             int one = a % 100 % 10;
             a = one * 100 + (a % 100/ 10) * 10 + (a / 100);
      
             int one2 = b % 100 % 10;
             b = one2 * 100 + (b % 100/ 10) * 10 + (b / 100);
      
             if (a > b) {
                 System.out.println(a);
             } else {
                 System.out.println(b);
             }
         }
      }

문제풀이:

이건 간단하게 나머지와 몫을 구하는 % , /를 이용해 백의 자리와 일의 자리를 구한 후 이를 바꿔줘서 구한 단순한 (약간의 노가다) 풀이 방법이다.

profile
ABAPER를 꿈꾸는 개발자

0개의 댓글