티스토리 뷰

728x90

문자열을 뒤집는 4가지 방법

①거꾸로 읽어오는 법    swop    reverse 함수    슬라이싱 연산 [::-1]

 

코드

❕ 주의 ❕  가로를 검사할 때는 슬라이싱이 가능하지만 세로 검사시에는 슬라이싱이 불가능하다

# 뒤에서 부터 읽어오면서 뒤집은 리스트 만드는 함수
def my_reverse(line):
    r_line = []
    for i in range(len(line)-1, -1, -1):
        r_line.append(line[i])
    return r_line


# 회문 찾는 함수
def my_find():
    for i in range(N):
        # 가로검사
        for j in range(N-M+1):
            tmp = words[i][j:j+M]
            # 회문 검사
            if tmp == my_reverse(tmp):
                return tmp

        # 세로 검사
        for j in range(N-M+1):
            tmp = []  # 부분 문자열을 위한 빈 리스트
            for k in range(M):
                tmp.append(words[j+k][i])
            if tmp == my_reverse(tmp):
                return tmp
    return []



T = int(input())
for tc in range(1, T+1):
    # N: 2차원 리스트의 크기, M: 회문 길이
    N, M = map(int, input().split())
    words = [list(input()) for _ in range(N)]
    ans = my_find()
    print("#{} {}".format(tc, ''.join(ans)))
댓글