[알고리즘/백준] 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