728x90
반응형
코딩테스트 문제 푸는 방향
1. 문제를 정독한다. 정독하면서 손으로 한 번 풀어본다.
2. 접근 방법을 구상한다.
3. 핵심 코드를 시각적으로 보이도록 손코딩한다.
4. 코드를 구현한다.
5. 디버깅 및 개선을 한다.
6. 부분 정답이 나올 시 1번으로 돌아가 더 꼼꼼하게 읽어보고 다른 접근 방법은 없는지 생각해본다.
1216. [S/W 문제해결 기본] 3일차 - 회문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
반응형
'코딩테스트 > SWEA' 카테고리의 다른 글
[SW Expert Academy][D3][python] 1215. [S/W 문제해결 기본] 3일차 - 회문1 (1) | 2023.05.19 |
---|---|
[SW Expert Academy][D3][python]1208. [S/W 문제해결 기본] 1일차 - Flatten (0) | 2023.05.18 |
[SW Expert Academy][D3][python] 1209.[S/W 문제해결 기본] 2일차 - SUM (0) | 2023.05.17 |
[SW Expert Academy][D3][python] 16910. 원 안의 점 (0) | 2023.05.16 |
[SW Expert Academy][D2][python]1961. 숫자 배열 회전 join (0) | 2023.05.13 |