SWEA(Python) 풀이/D3

SWEA[D3] (Python) 4579번 세상의 모든 팰린드롬 2 풀이

개발윗미 2022. 5. 23. 14:21

Python으로 구현한 4579번 세상의 모든 팰린드롬 2 문제 풀이입니다.

 

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&contestProbId=AWQAz7IqAH8DFAWh&categoryId=AWQAz7IqAH8DFAWh&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=PYTHON&select-1=3&pageSize=10&pageIndex=6 

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com


t = int(input())

for tc in range(1, t + 1) :
    data = input()
    reversed_data = data[::-1]
    result = 'Not exist'
    for i in range(len(data)) :
        if data[i] == reversed_data[i] :
            continue
        if data[i] == '*' or reversed_data[i] == '*' :
            result = 'Exist'
            break
        else :
            break
    else :
        result = 'Exist'

    print('#%d %s' % (tc, result))

 

1. 각 테스트 케이스마다 입력받은 문자열 data를 뒤집어 reversed_data에 저장한다.

 

2. 가장 처음 result 값은 'Not exist'로 초기화하고, data문자열과 reversed_data문자열의 문자를 하나씩 확인한다.

 

3. 만약 두 문자가 같다면 continue한다.

 

4. 만약 두 문자가 다르지만, 둘 중 하나의 문자가 '*' 일 경우 팰린드롬이 될 수 있으므로 result 값을 'Exist'로 갱신한 후 break 한다.

 

5. 만약 두 문자가 다르고 '*' 문자도 존재하지 않는다면 break한다.

 

6. 두 문자열에 '*' 가 없고 모든 문자가 같다면 result 값을 'Exist'로 갱신한다.

 

7. 최종적으로 해당 테스트 케이스 번호와 함께 result값을 출력한다.