PS/BaekJoon
[1259] 팰린드롬 수 : Java
eee_269
2021. 4. 14. 04:00
728x90
반응형
1259번: 팰린드롬수
입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다.
www.acmicpc.net
문제 해석
1. String으로 받기
: 0이면 반복문 빠져나오고 종료
2. 문자열 전체길이 반만큼 반복문 돌려서 앞, 뒤 비교
2차 문제 분석
1. 0 하나가 입력되면 종료
2. 문장의 맨 앞에 0이 오더라도 포함하지 않고 숫자 형식으로 판단
: 숫자로 입력받아서 문자열로 변환
3. 0이 아닌 한 글자일때 yes
4. 문자열을 역순으로 저장하고 원래 문자열과 비교하기
: 여기서...잘 안됐었다.....
: 문자열을 반으로 나누는 방식이 잘못되었던 것 같다..!
Java
// Fail Code
import java.util.*;
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
StringBuffer result = new StringBuffer();
while(true) {
String s = sc.nextLine();
if(s.equals("0")) break;
boolean ch = false;
for (int i = 0; i < s.length() / 2; i++) {
if (s.charAt(i) == s.charAt(s.length() - 1 - i))
ch = true;
else ch = false;
}
if (ch) result.append("yes\n");
else result.append("no\n");
}
System.out.println(result);
}
}
import java.util.*;
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(true) {
int input = sc.nextInt();
String s = Integer.toString(input);
boolean ch = false;
if(s.length() == 1){
if(s.equals("0")) break;
else ch = true;
} else {
String com = "";
for(int i=s.length()-1; i >= 0; i--) {
com += s.charAt(i);
}
if(s.equals(com)) ch = true;
else ch = false;
}
if (ch) System.out.println("yes");
else System.out.println("no");
}
}
}
728x90
반응형