백준 1259번
https://www.acmicpc.net/problem/1259
어떤 단어를 뒤에서부터 읽어도 똑같다면 그 단어를 팰린드롬이라고 한다. 'radar', 'sees'는 팰린드롬이다.
수도 팰린드롬으로 취급할 수 있다. 수의 숫자들을 뒤에서부터 읽어도 같다면 그 수는 팰린드롬수다. 121, 12421 등은 팰린드롬수다. 123, 1231은 뒤에서부터 읽으면 다르므로 팰린드롬수가 아니다. 또한 10도 팰린드롬수가 아닌데, 앞에 무의미한 0이 올 수 있다면 010이 되어 팰린드롬수로 취급할 수도 있지만, 특별히 이번 문제에서는 무의미한 0이 앞에 올 수 없다고 하자.
문제 풀고 나서 TMI를 조금 해보자면
'이 문제 풀었었던거 같은데..' 했지만 '일단 풀자' 하고 풀었는데,
제출할 때 보니까 진짜 딱 한달 전에 풀었었음..
금붕어 수준의 기억력..
근데 신기했던 점이 요즘 알고리즘을 문제를 자주 풀어서 그런지 실력이 조금 늘었다는 기분?
한달 전 보다 코드가 훨씬 간결해지고
메모리나 시간 부분에서도 향상된게 결과로 보여서
별것도 아니지만 괜히 뿌듯했음 ㅎㅎ
import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); LinkedList<Character> linkedList = new LinkedList<>(); LinkedList<Character> linkedList2 = new LinkedList<>(); // 0 일때까지 반복 int num; while((num = Integer.parseInt(br.readLine())) != 0) { String temp = Integer.toString(num); for(int i=0; i<temp.length(); i++) { linkedList.add(temp.charAt(i)); } for(int j=temp.length()-1; j>=0; j--) { linkedList2.add(temp.charAt(j)); } for(char ch : linkedList) { char ch2 = linkedList2.poll(); if(ch != ch2) { System.out.println("no"); break; } else if(linkedList2.isEmpty()) { System.out.println("yes"); } } linkedList.clear(); linkedList2.clear(); } br.close(); } }