코딩테스트/SWEA

[SW Expert Academy][D3][python] 1216. [S/W 문제해결 기본] 3일차 - 회문2

코린영이 2023. 5. 19. 20:39
728x90
반응형

코딩테스트 문제 푸는 방향
1. 문제를 정독한다. 정독하면서 손으로 한 번 풀어본다.
2. 접근 방법을 구상한다.
3. 핵심 코드를 시각적으로 보이도록 손코딩한다. 
4. 코드를 구현한다. 
5. 디버깅 및 개선을 한다.
6. 부분 정답이 나올 시 1번으로 돌아가 더 꼼꼼하게 읽어보고 다른 접근 방법은 없는지 생각해본다. 

1216. [S/W 문제해결 기본] 3일차 - 회문2 

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&contestProbId=AV14Rq5aABUCFAYi&categoryId=AV14Rq5aABUCFAYi&categoryType=CODE&problemTitle=%EB%AC%B8%EC%A0%9C%ED%95%B4%EA%B2%B0&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=3&pageSize=10&pageIndex=2 

 

SW Expert Academy

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

swexpertacademy.com

회문1에서 조금 더 발전한 회문2!

회문1에서는 8*8에서 정해진 길이의 회문의 개수를 구했다면

회문2에서는 배열의 크기가 더 커진 100*100 이고 회문의 길이도 정해지지 않았다.

 

[제약 사항]

1. 배열의 크기 100*100

 

[문제 해결 방향]

for문으로 길이를 유동적으로 만들어서

빈리스트에 회문에 해당하는 것의 길이를 append 시킬 것이다.

 

회문 길이의 범위는 1,2는 필요없을 것 같아서 3부터 돌려줬다. 딱히 그렇게 차이는 없을거같지만,,

 

[파이썬 코드]

T = 10 
for test_case in range(1, T+1):
    N = int(input())
    arr_100 = [list(input()) for _ in range(100)]
    max_lst = []

    # 가로 행 row
    for i in range(100):
        for j in range(3, 100): # 길이 j는 3부터 100까지
            for k in range(100-j+1): # K는 확인하는 횟수
                if arr_100[i][j:j+k] == arr_100[i][j:j+k][::-1]:
                    max_lst.append(len(arr_100[i][j:j+k]))            

    # 세로 열 col
    for i in range(100):
        for j in range(3, 100): # 길이 j는 3부터 100까지
            for k in range(100-j+1): # K는 확인하는 횟수
                lst = []
                for m in range(k,k+j):
                    lst += arr_100[m][i]
                if lst == lst[::-1]:
                    max_lst.append(len(lst))
            
    print("#{} {}".format(test_case,max(max_lst)))

 

[참고 사이트]

https://corinyoungee.tistory.com/63

 

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

코딩테스트 문제 푸는 방향 1. 문제를 정독한다. 정독하면서 손으로 한 번 풀어본다. 2. 접근 방법을 구상한다. 3. 핵심 코드를 시각적으로 보이도록 손코딩한다. 4. 코드를 구현한다. 5. 디버깅 및

corinyoungee.tistory.com

 

[느낀점]

좋아좋아~~

이렇게 풀어도 괜찮겠지??

728x90
반응형