하루 한 문제는 푸는데, 막상 풀고나면 올리는걸 깜빡해서 1일 1업로드가 전혀 쉽지않은 것 같다...
암튼 이 문제는 런타임 오류를 해결하는게 쉽지 않았다.
T=int(input()) for tc in range(1,1+T): n=int(input()) al=list(map(int,input().split())) cnt = 0 while al != []: al_max = max(al) al_index = al.index(al_max) if al_index != 0: for q in range(al_index): cnt += al_max - al[0] al.remove(al[0]) else: al.remove(al[0]) print('#{} {}'.format(tc, cnt))
1. 처음에 떠올렸던 접근법
max 값과 index 값을 사용해서 al_index가 0이면 해당 값을 remove로 지우면서 진행하는 방식
너무 많은 연산 과정으로 인행 런타임 오류 발생, 시간 초과 되어버림(답은 맞음)
2. 정답
T=int(input()) for tc in range(1,1+T): n=int(input()) al=list(map(int,input().split()))[::-1] cnt = 0 al_max = al[0] for i in range(n): if al_max >= al[i]: cnt += al_max-al[i] else: al_max = al[i] print('#{} {}'.format(tc, cnt))
런타임 오류를 해결하기 위해 여러 시도를 했는데, 내 힘으로는 해결하지 못했다
구글링을 통해 문제 해결의 실마리를 찾고 문제 해결을 할 수 있었다
시작점이 아닌 끝나는 지점에서 진행한다는 아이디어가 내가 이 문제를 해결할 수 있게끔 도왔다.
3. 느낀점
해당 문제를 풀면서 느낀 것은 내가 작성한 코드를 과감히 지울 수 있어야 한다는 것이다
기존에 작성해 둔 코드와 접근 방식을 기준으로 다른 방법을 찾다보니, 기존의 생각에서 벗어날 수 없었다. 이는 문제 해결을 늦추는 가장 큰 장애물이 되었다
ps. 저의 접근법이나 코드는 그저 이런 것도 있다 정도로만 보고 넘겨주시길 부탁드립니다!
'코딩 문제해결 > 문제 풀이.SWEA' 카테고리의 다른 글
[SWEA 코딩] [모의 SW 역량테스트] 요리사 - PYTHON #4012 (0) | 2020.12.17 |
---|---|
[SWEA 코딩] [모의 SW 역량테스트] 원자 소멸 시뮬레이션 - PYTHON #5648 (0) | 2020.12.16 |
[SWEA 코딩] [모의 SW 역량테스트] 줄기세포배양 - PYTHON #5653 (0) | 2020.12.14 |
[SWEA 코딩] [모의 SW 역량테스트] 수영장 - PYTHON #1952 (1) | 2020.12.12 |
[SWEA 코딩] [모의 SW 역량테스트] 미생물 격리 - PYTHON # 2382 (0) | 2020.12.11 |