반응형
1259번: 팰린드롬수
입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다.
www.acmicpc.net
풀이 >
문자열을 잘라 배열로 만든 후 , 배열의 인덱스로 문자가 같은지 확인했다.
플래그를 boolean으로 구현하고 싶었는데 생각이안나서 비교한 갯수가 맞으면 전부 비교해서 맞다고 생각하고 yes를 출력하도록 했따...
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
String[] val = br.readLine().split("");
while (!val[0].equals("0")) {
int flag = 0;
for (int i = 0; i < val.length / 2; i++) {
if (val[i].equals(val[val.length - 1 - i])) {
flag += 1;
} else flag = 0;
}
if (flag == val.length / 2) sb.append("yes");
else sb.append("no");
val = br.readLine().split("");
sb.append("\n");
}
System.out.println(sb);
}
}
수정한 풀이 >
0 과 문자열의 길이-1 로 변수를 만들어 서로 비교한다
비교중 틀린 값이 발견되면 바로 while문을 빠져나와 no 출력
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
String val = br.readLine();
while (!val.equals("0")) {
boolean flag = true;
int i = 0;
int j = val.length() - 1;
while (i < j) {
if (val.charAt(i) == val.charAt(j)) {
i++;
j--;
} else {
flag = false;
break;
}
}
if (flag) sb.append("yes");
else sb.append("no");
val = br.readLine();
sb.append("\n");
}
System.out.println(sb);
}
}
반응형
'알고리즘 > 문제풀이' 카테고리의 다른 글
[JAVA]백준 - 1181.단어 정렬(compare 오버라이딩) (0) | 2020.11.10 |
---|---|
[JAVA]백준 - 11650.좌표 정렬하기(Arrays.sort / compare 오버라이딩) (0) | 2020.11.09 |
[JAVA]백준 - 11654.아스키 코드 (0) | 2020.11.05 |
[JAVA]백준 - 2338.긴자리 계산 (0) | 2020.11.04 |
[JAVA]백준 - 1271.엄청난 부자2 (0) | 2020.11.04 |