문제 링크
주의사항
- JAVA를 사용하여 프로그램을 사용하였습니다.
- 백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다.
public class Main{
public static void main(String[] args){
}
}
문제 설명
접근 방법
이 문제에 핵심
1. X와 Y는 1000보다 작거나 같은 자연수입니다.
2. Rex는 자연수를 반대로 바꾸는 작업입니다.
3. Rex(Rex(X) + Rex(Y))의 결과로 출력합니다.
알고리즘 진행 순서.
1. 입력된 정보를 저장합니다.
2. Rex(Rex(X) + Rex(Y))을 계산합니다.
3. 계산한 결과를 출력합니다.
Rex.
StringBuilder.reverse()을 이용하여 간단하고 수를 바꾸었습니다.
반대로 바꾼 결과를 Integer 형태로 변경하여 반환하였습니다.
예제입력 1.
1. 입력된 정보를 저장합니다.
X : 123
Y : 100
2. Rex(Rex(X) + Rex(Y))을 계산합니다.
Rex(X) : 123 -> 321
Rex(Y) : 100 -> 001 -> 1
Rex(X) + Rex(Y) = 321 + 1 = 322
Rex(Rex(X) + Rex(Y)) = 322 -> 223
3. 계산한 결과를 출력합니다.
223을 결과로 출력합니다.
- BufferedReader를 사용하여 입력되는 정보를 저장합니다.
- StringTokenizer를 통해서 입력값을 A, B, C, D로 나누었습니다.
- (A, B)와 (C, D)를 붙인 값을 더합니다.
- 더한 결과를 BufferedWriter 저장하였습니다.
- BufferedWriter에 저장된 결과값을 출력하였습니다.
※입력되는 수의 최대 범위가 1,000,000으로써 A와 B가 모두 1,000,000일 때 붙이면 int에 범위에 초과하기 때문에 long을 사용하였습니다.
import java.io.*;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException{
//입력값 처리하는 BufferedReader
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//결과값 출력하는 BufferedWriter
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine()," ");
//입력값 저장
int X = Integer.parseInt(st.nextToken());
int Y = Integer.parseInt(st.nextToken());
bw.write(Rex(Rex(X) + Rex(Y)) + "");//Rex(Rex(X)+Rex(Y)) 결과 BufferedWriter 저장
bw.flush(); //결과 출력
bw.close();
br.close();
}
//자연수를 반대로 바꾸는 Rex 함수
static int Rex(int num){
StringBuilder sb = new StringBuilder(num +"");
sb.reverse(); //바꾸기
return Integer.parseInt(sb.toString()); //Integer형으로 변경 후 반환
}
}
'백준' 카테고리의 다른 글
[백준] 알고리즘 분류(문자열,JAVA)9086번, 문자열 (0) | 2022.10.01 |
---|---|
[백준] 알고리즘 분류(트리,JAVA)11438번, LCA 2 (0) | 2022.09.30 |
[백준] 알고리즘 분류(트리,JAVA)11437번, LCA (0) | 2022.09.27 |
[백준] 알고리즘 분류(트리,JAVA)5052번, 전화번호 목록 (0) | 2022.09.26 |
[백준] 알고리즘 분류(트리,JAVA)1068번, 트리 (0) | 2022.09.25 |
댓글