반응형
[ Contents ]
1. 문제 (링크 참조)
2908번: 상수
상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두
www.acmicpc.net
2. 문제 풀이
숫자를 거꾸로 변환하고 크기 비교하는 문제입니다.
2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학
[Algorithm] 단골 1번 문제, 구현 / 수학
1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하여 해결할
star7sss.tistory.com
숫자만 거꾸로 변환하면 쉬운 문제입니다. 다만 그 방법이 다소 귀찮습니다. 단순히 123라는 숫자를 거꾸로 변환하려면 1의 자리부터 떼내서 옮겨야 합니다.
def reverseNumber(N):
res = 0
while N != 0:
res *= 10 #자릿수 올려주기
tmp = N%10 #1의 자리
res += tmp
N //= 10
return res
복잡한 과정은 아니지만, 번잡합니다...
3. 코드
A, B = input().split()
A = int(A[::-1])
B = int(B[::-1])
if A > B:
print(A)
else:
print(B)
String 문자열의 특성을 이용하면 조금 더 쉽게 풀 수 있습니다. A[::-1]은 문자열 A를 거꾸로 바꿔줍니다. 리스트 슬라이싱을 이용하면 됩니다.
이후, 문자열을 다시 정수형(int)로 바꿔준다음 비교하면 됩니다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next();
String b = sc.next();
int rA = 0;
int rB = 0;
int tmp = 1;
for(int i = 0; i < a.length(); i++) {
rA += (Integer.parseInt(a.substring(i, i+1)) * tmp);
tmp *= 10;
}
tmp = 1;
for(int i = 0; i < b.length(); i++) {
rB += (Integer.parseInt(b.substring(i, i+1)) * tmp);
tmp *= 10;
}
System.out.println( (rA > rB) ? rA : rB );
sc.close();
}
}
반응형
'Algorithm' 카테고리의 다른 글
[Algorithm] 분할정복(DQ, Divide-and-Conquer), 각개격파 알고리즘 (0) | 2022.01.29 |
---|---|
[구현/수학] 백준 10872 팩토리얼 - Python, Java (0) | 2022.01.28 |
[구현/수학] 백준 4673 셀프 넘버 - Python, Java (0) | 2022.01.28 |
[구현/수학] 백준 10818 최소, 최대 - Python (0) | 2022.01.27 |
[구현/수학] 백준 2588 곱셈 - Python (0) | 2022.01.27 |
댓글