SW Expert Academy - 1215. [S/W 문제해결 기본] 3일차 - 회문1

2024. 5. 7. 15:15코테 준비!

 

 

문제 링크 :

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14QpAaAAwCFAYi&categoryId=AV14QpAaAAwCFAYi&categoryType=CODE&problemTitle=%ED%9A%8C%EB%AC%B8&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=1

 

SW Expert Academy

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

swexpertacademy.com

 

for q in range(10):
    n = int(input())
    arr = []
    cnt = 0
    for i in range(8):
        arr.append("".join(input()))
    # print(arr[0][0]) 
    for j in range(8):# 0 1 2 3 4 5 6 7 0,len(arr)-n+1,1
        for k in range(0,len(arr[j])-n+1,1):
            test = []
            test2 = []
            for l in range(n):# 0 1 2 3
                test.append(arr[j][k+l])
            for u in range(n-1,-1,-1):# 3 2 1 0
                test2.append(test[u])
                if test == test2:
                    # print(test, test2,end="")
                    cnt +=1 
    for j in range(8):# 0 1 2 3 4 5 6 7 0,len(arr)-n+1,1
        for k in range(0,len(arr[j])-n+1,1):
            test = []
            test2 = []
            for l in range(n):# 0 1 2 3
                test.append(arr[k+l][j])
            for u in range(n-1,-1,-1):# 3 2 1 0
                test2.append(test[u])
                if test == test2:
                    # print(test, test2,end="")
                    cnt +=1 
    print(f'#{q+1}',cnt)

가로, 세로 돌면서 체크 해주는 코드입니다.

test = [] 에 회문의 길이만큼 추가해 주고,

추가한 길이만큼 반대로 체크해줍니다. 그게 맞으면 cnt + 1을 통해서 체크합니다.

 

 

GPT 답안비교!

GPT는 리스트 슬라이싱을 통해서 역순으로 읽어 검사하는거 같아요!.

다음에 기회가 있다면 이런 방법도 생각해 봐야겠네요..