본문 바로가기
ETC/잡글

20211202는 팰린드롬 (팰린드롬인 YYYYMMDD 찾기)

by Nahwasa 2021. 12. 2.

팰린드롬; 회문(回文) 또는 팰린드롬(palindrome)은 거꾸로 읽어도 제대로 읽는 것과 같은 문장이나 낱말, 숫자, 문자열(sequence of characters) 등이다. (위키백과)

 

 

  단톡방에 누군가 이런 이미지를 올렸다.

 

 

  이과생으로써 그냥 저 말 그대로 믿고 넘어갈 순 없으므로 검증을 해봤다. '우리 생'이 언제까진진 모르겠지만 대충 2100년까진 산다고 치고 코드를 짜봤다. 뭐 2월 윤년 계산이라던지 4월은 30일까지라던지 그런거 없이 일단 존재하는지 확인하기 위해 무지성으로 짰다.

 

(github)

public class Main {
    private void solution() throws Exception {
        StringBuilder sb = new StringBuilder();
        for (int i = 2021; i < 2100; i++) {
            for (int m = 1; m <= 12; m++) {
                for (int d = 1; d <= 31; d++) {
                    int cur = i * 10000 + m * 100 + d;
                    String str = String.valueOf(cur);
                    boolean ok = true;
                    for (int c = 0; c < str.length()/2; c++) {
                        if (str.charAt(c) != str.charAt(str.length()-1-c)) {
                            ok = false;
                            break;
                        }
                    }

                    if (ok) {
                        sb.append(str).append('\n');
                    }
                }
            }
        }
        System.out.println(sb);
    }

    public static void main(String[] args) throws Exception {
        new Main().solution();
    }
}

 

 

  결과는 다음과 같다. 적어도 2030년의 팰린드롬날은 볼 수 있을 것 같다. 

20211202
20300302
20400402
20500502
20600602
20700702
20800802
20900902

 

  그게 아니라 당연히 오늘은 지나가면 다시 안오니깐 '우리 생애 다시 오지 않을 특별한 날' 이라고 한거라면, 모든 날이 그러므로 굳이 특별하다고 할 이유가 없다. 그러니 오류가 있다고 본다(궁서체).

 

  아무튼 업계 최고의 칭찬을 들었으므로 만족스럽다.

 

댓글