[Silver II] 아카라카 - 23304
분류
재귀, 문자열
문제 설명
아카라카!
아카라카(아라)칭 아카라카(아라)쵸 아카라카(아라) 칭칭
쵸쵸쵸 랄랄라 시스붐바 연세 선수 라플라
헤이 연세 야!
AKARAKA(아카라카)는 컴퓨터 과학적 관점으로 바라봤을 때, 튜링도 기립 박수를 치고 갈 가히 최고의 구호라 할 수 있다. AKARAKA는 그 자체로도 팰린드롬이고, 접두사이자 접미사인 AKA가 또한 팰린드롬이기 때문이다.
신촌에서는 AKARAKA같은 특성을 가진 팰린드롬을, 아카라카 팰린드롬이라 아래와 같이 정의한다.
- 문자열 S가 팰린드롬이다. 팰린드롬이란 거꾸로 뒤집어 읽어도 같은 문자열을 뜻한다.
- 문자열 S의 길이를 |S|라 할 때, ⌊|S|2⌋|2⌋ 길이의 접두사와 접미사가 모두 아카라카 팰린드롬이다. 만약 |S|=1|=1이면, S는 아카라카 팰린드롬이다.
임의의 문자열이 주어졌을 때, 그 문자열이 아카라카 팰린드롬인지 알아보자. 만약 알아내지 못하면, 졸업할 때까지 아카라카를 못 갈지도 모른다!
입력
알파벳 소문자로 이루어진 문자열 S가 주어진다. (1≤|S|≤2 000 0001≤|≤2 000 000)
출력
주어진 문자열 S가 아카라카 팰린드롬이라면, AKARAKA를 출력한다.
만약 그렇지 않다면, IPSELENTI를 출력한다.
def DFS(s):
global result
if len(s) == 1:
result = "AKARAKA"
return
else:
if s != s[::-1]:
return
else:
N = len(s) // 2
DFS(s[:N])
DFS(s[-N:])
S = input()
result = "IPSELENTI"
DFS(S)
print(result)
'Algorithm > BAEKJOON' 카테고리의 다른 글
[백준 / Python 파이썬] 14496번 - 그대, 그머가 되어 (0) | 2023.09.02 |
---|---|
[백준 / Python 파이썬] 27497번 - 알파벳 블록 (0) | 2023.08.22 |
[백준 / Python 파이썬] 16923번 - 다음 다양한 단어 (0) | 2023.08.22 |
[백준 / Python 파이썬] 1821번 - 수들의 합 6 (0) | 2023.08.13 |
[백준 / Python 파이썬] 2502번 - 떡 먹는 호랑이 (0) | 2023.08.13 |