on
[알고리즘/백준] 1259 팰린드롬 수(자바)
[알고리즘/백준] 1259 팰린드롬 수(자바)
문제
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("
"); } else { sb.append("no").append("
"); } } 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("
"); } else { sb.append("no").append("
"); } } System.out.println(sb); } }
728x90
from http://developer-hm.tistory.com/160 by ccl(A) rewrite - 2021-09-21 15:01:36