상수(2908)

숫자를 뒤집어서 비교하는 문제

문제

상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다.

상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 것이다.

두 수가 주어졌을 때, 상수의 대답을 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 상근이가 칠판에 적은 두 수 A와 B가 주어진다. 두 수는 같지 않은 세 자리 수이며, 0이 포함되어 있지 않다.

출력

첫째 줄에 상수의 대답을 출력한다.

예제 입력

734 893

예제 출력

437

숫자를 입력받으면, 그 숫자를 반대로 만들고 반대로된 숫자를 비교하는 문제

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s = sc.next();
        String rs="";
        for(int i=s.length()-1; i>=0; i--){
            rs += s.charAt(i);
        }
        String s2 = sc.next();
        String rs2="";
        for(int i=s2.length()-1; i>=0; i--){
            rs2 += s2.charAt(i);
        }
        if(Integer.parseInt(rs) > Integer.parseInt(rs2)){
            System.out.println(rs);
        }else
            System.out.println(rs2);


    }
}

처음에 for문을 생성하는데 어려웠다...

문자열을 반대로 출력하는 방법으로는 StringBuffer의 reverse()함수를 이용하는 방법과 for문을 사용하는 방법이 있다.

난 for문을 사용했음

  • 처음 i변수의 초기화값 : 변경할 문자열의 길이-1

  • i변수를 언제까지 : >=0 까지

  • i변수를 얼만큼 증감 : --

문자열을 reverse하는 알고리즘이라고 생각하고 잘 기억해두자!!

Last updated

Was this helpful?