문제
https://www.acmicpc.net/problem/1259
문제 설명
문제 풀이
while(!str.equals("0")) {
int i = 0; //첫번째 인덱스
int j = str.length() - 1; //단어 마지막 인덱스
while(i <= j / 2) {
if(str.charAt(i) == str.charAt(j - i)) {
i++;
}
else {
System.out.println("no");
break;
}
}
입력을 String으로 받아서 단어의 맨 처음과 맨 끝을 비교한다. 이후 점점 안쪽으로 들어오면서 입력받은 단어가 팰린드롬인지 알아본다.
StringBuilder.reverse()를 사용해서 입력을 뒤집은 뒤, 입력 받은 단어와 비교하는 풀이가 있었는데 편해보였다.
코드
import java.util.*;
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
while(!str.equals("0")) {
int i = 0;
int j = str.length() - 1;
while(i <= j / 2) {
if(str.charAt(i) == str.charAt(j - i)) {
i++;
}
else {
System.out.println("no");
break;
}
}
if(i == j / 2 + 1) {
System.out.println("yes");
}
str = sc.next();
}
}
}
총평
뭔가 풀어놓고도 이 풀이가 최선이라는 생각이 유독 들지 않았던 문제다.
다른 사람들의 코드를 보니 대부분 나랑 비슷한 방식으로 푼 거 같다.
수식을 이용해서 해결한 풀이가 있었는데 그거 하나는 정말 독특한 풀이였다.
'🧑💻코딩 테스트 > 백준 (BOJ)' 카테고리의 다른 글
[코딩테스트/ 백준 알고리즘] 10866번 : 덱 (Java, 자바 풀이) (0) | 2022.08.03 |
---|---|
[코딩테스트/백준 알고리즘] 10814번 : 나이순 정렬 (Java, 자바 풀이) (0) | 2022.08.03 |
[코딩 테스트/백준 알고리즘] 11650번 : 좌표 정렬하기 (Java 풀이) (0) | 2022.08.01 |
[코딩 테스트/백준 알고리즘] 1181번 : 단어 정렬 (Java 풀이) (0) | 2022.08.01 |
[코딩 테스트/ 백준 알고리즘] 1037번 : 약수 (Java 풀이) (0) | 2022.07.29 |
댓글