728x90
문제
https://www.acmicpc.net/problem/1259
풀이 코드
두가지 방법으로 풀이하였다.
풀이1 - StringBduiler사용
- StringBuilder의 reverse() 메서드를 사용하여 문자열을 뒤집어 원래 문자열과 비교
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();
while(true) {
String s = br.readLine();
if (s.equals("0")) {
break;
}
String reverse = new StringBuilder(s).reverse().toString();
if (s.equals(reverse)) {
sb.append("yes").append("\n");
} else {
sb.append("no").append("\n");
}
}
System.out.println(sb);
}
}
풀이2 - 투포인터 알고리즘 사용
- 투포인터 알고리즘을 사용하여 반대편에 있는 문자와 같은 문자인지 비교
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 s = "";
while(true) {
s = br.readLine();
if (s.equals("0")) {
break;
}
int left = 0;
int right = s.length() - 1;
boolean isPalindrome = true;
while(left <= right) {
if (s.charAt(left) != s.charAt(right)) {
isPalindrome = false;
break;
}
left++; right--;
}
if (isPalindrome) {
sb.append("yes").append("\n");
} else {
sb.append("no").append("\n");
}
}
System.out.println(sb);
}
}
'알고리즘 문제풀이 > 백준' 카테고리의 다른 글
[알고리즘/백준] 1920 수 찾기(자바, 이진탐색, BinarySearch) (0) | 2021.09.23 |
---|---|
[알고리즘/백준] 1018 체스판 다시 칠하기(자바) (0) | 2021.09.23 |
[알고리즘/백준] 1181 단어 정렬(자바) (0) | 2021.09.20 |
[알고리즘/백준] 1085 직사각형에서 탈출(자바) (0) | 2021.09.20 |
[알고리즘/백준] 10818 최소,최대(자바) (0) | 2021.09.20 |
댓글