코딩테스트/구현
[백준] 1357번 뒤집힌 덧셈
cool_code
2024. 4. 12. 01:10
https://www.acmicpc.net/problem/1357
1357번: 뒤집힌 덧셈
어떤 수 X가 주어졌을 때, X의 모든 자리수가 역순이 된 수를 얻을 수 있다. Rev(X)를 X의 모든 자리수를 역순으로 만드는 함수라고 하자. 예를 들어, X=123일 때, Rev(X) = 321이다. 그리고, X=100일 때, Rev(
www.acmicpc.net
- 단순히 String <-> int 변환을 반복해주며, String에서 값을 거꾸로 뒤집어주면 된다.
- 마지막 최종 출력에서 int -> String으로 바꾸어서 String값을 출력할 때, 앞 글자가 0으로 시작할 수 있기에 flag 값을 둬서 0이면 출력하지 않도록 했다.
+) 변환 메서드 같은 게 정확하게 기억이 안나서 각 잡고 외울 필요가 있음...
+) StringBuilder의 reverse() 함수를 사용하여 뒤집는 방법도 있을 듯 하다.
package yejin.song;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class BOJ_뒤집힌덧셈 {
public static void main (String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String token[] = br.readLine().split(" ");
int sum = 0;
for (int i = 0; i< token.length; i++ ){
String str = "";
char[] arr = token[i].toCharArray();
for (int j = arr.length-1; j >= 0; j--){
str += arr[j];
}
sum += Integer.parseInt(str);
}
String rev = String.valueOf(sum);
int flag = 0; //출력 불가능
for (int i = rev.length()-1; i >=0 ; i--){
if (rev.charAt(i) != '0'){ // 플래그 한번 바뀌면 쭉 출력 가능함.
flag = 1;
}
if (flag == 1) System.out.print(rev.charAt(i));
}
}
}