코테/백준
[백준/JAVA] 3062번: 수 뒤집기
imname1am
2023. 6. 9. 16:13
반응형
🔺 문제
3062번: 수 뒤집기
수 124를 뒤집으면 421이 되고 이 두 수를 합하면 545가 된다. 124와 같이 원래 수와 뒤집은 수를 합한 수가 좌우 대칭이 되는지 테스트 하는 프로그램을 작성하시오.
www.acmicpc.net
🔺 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder answer = new StringBuilder();
int T = Integer.parseInt(br.readLine());
String[][] arr = new String[T][2]; // 원래 수, 뒤집은 수
int[] sum = new int[T]; // 원래 수 + 뒤집은 수 값 배열
for(int i = 0 ; i < T ; i++) {
arr[i][0] = br.readLine(); // 원래 수 받기
// 뒤집은 수 생성
StringBuilder sb = new StringBuilder(arr[i][0]);
arr[i][1] = sb.reverse().toString();
sum[i] = Integer.parseInt(arr[i][0]) + Integer.parseInt(arr[i][1]); // 원래 수 + 뒤집은 수
answer.append(isPalindrome(sum[i]) ? "YES" : "NO").append("\n");
}
System.out.println(answer.toString());
}
// 좌우대칭 판단
private static boolean isPalindrome(int n) {
char[] ch = Integer.toString(n).toCharArray();
for(int i = 0 ; i < ch.length / 2 ; i++) {
if(ch[i] != ch[ch.length - 1 - i]) {
return false;
}
}
return true;
}
}
|
cs |
✅ 해결 아이디어
- 뒤집은 수 만들기 → StringBuilder의 reverse() 메소드 이용
- 좌우대칭 판단 메소드 → char형 배열로 만들어 값 같은지 판단해서 다르면 바로 false 떄려버리게
🔺 다른 풀이들
- 뒤집은 수 만들고 더하는 과정을 나보다 더 짧게 하심
BOJ 백준온라인져지 3062 수 뒤집기 풀이
1. int 로 변경해서 더해주고 character 형을 검사 이제는 ICPC 문제를 조금씩 풀어봐야지문제수 124를 뒤집으면 421이 되고 이 두 수를 합하면 545가 된다. 124와 같이 원래 수와 뒤집은 수를 합한 수가
ksh-code.tistory.com
- 그냥 원래 수 + 뒤집은 수 합 값을 StringBuilder로 만들고, 이 값을 reverse했을 때 같으면 YES가 출력되게 다르면 NO가 출력되게 하셨다... wow
로그인
www.acmicpc.net
💬 느낀 점
오잉 다른 분들 숏코딩 보다 보니까 나보다 대부분 메모리랑 시간을 많이 쓰셨다 우앙,,,,
1회독 | 2회독 | 3회독 | 4회독 | 5회독 |
V |
반응형