본문 바로가기

코딩테스트/백준

[백준-자바/파이썬] 2908번 상수 / 2021.09.05

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

 

2908번: 상수

상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두

www.acmicpc.net

 

1. Java

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import java.util.Scanner
public class Main { 
    public static void main(String[] args) { 
        Scanner sc = new Scanner(System.in);
        String num1 = sc.next();
        String num2 = sc.next();
        
        String newnum1 = "";
        String newnum2 = "";
        
        for(int i = num1.length()-1; i>= 0; i--) {
            newnum1 += num1.charAt(i);
            newnum2 += num2.charAt(i);
        }
        
        if(Integer.parseInt(newnum1) > Integer.parseInt(newnum2) )
            System.out.println(newnum1);
        else
            System.out.println(newnum2);    
    }
}
cs

 

풀이 : 

먼저 숫자를 거꾸로 뒤집어 줘야 하기 편하게 숫자 입력을 int형이 아닌 String으로 받는다.

그리고 새로운 문자열 변수(newnum)를 만들어 준 후 for문을 사용하여 숫자의 마지막 문자부터 거꾸로 새로운 문자열에 더해준다. 

마지막으로 거꾸로 뒤집은 숫자를 비교해주기 위해 String을 int로 바꿔주는 함수 Integer.parseInt()를 사용해서 비교해 주었다.

 

 

2. Python

 

 

1
2
3
4
5
6
7
8
9
num1, num2 = input().split(' ')
 
newnum1 = num1[::-1]
newnum2 = num2[::-1]
 
if int(newnum1)>int(newnum2):
    print(newnum1)
else:
    print(newnum2)
cs

 

풀이 :

파이썬의 경우도 자바와 똑같이 접근해서 풀었다.

문자열을 거꾸로 하는 부분에서 문자열 슬라이싱을 사용했다. [처음:끝:단계]