-
[python] Codility Lesson 4-2. MaxCounters공부/알고리즘 2021. 7. 25. 03:07
Time Over에 걸려 77점 코드에서 2시간 가량 풀집중해서 풀다가 한숨 크게 쉬고 다른사람이 짠거 살펴보았다.
특출나게 한 방법들은 딱히 보이진 않았고 중간 중간 살짝 가미된... 왜 이렇게 생각 못했을까 하는 아쉬움이 크게 남은 문제였다.
1. 77점 타임오버된 코드
def solution(N, A): # write your code in Python 3.6 answer_list = [0 for _ in range(N)] counter = 0 for index, value in enumerate(A): if value < N+1: answer_list[value-1] += 1 counter +=1 else: if counter != 0: max_val = max(answer_list) #스트레스의 answer_list = [max_val for _ in range(N)]# 원인 counter = 0 return answer_list
2. 100 pass 한 다른분이 작성한 코드 (출처: https://imksh.com/68 )
def solution(N,A): savemaximum = 0 maximum = 0 counter = [0]*N for i in range(len(A)): if A[i]<=N: if counter[A[i]-1]<savemaximum: counter[A[i]-1]=savemaximum counter[A[i]-1]+=1 maximum = max(counter[A[i]-1],maximum) else:# N보다 큰 수가 들어오면 maximum으로 동기화 savemaximum = maximum for i in range(N): if counter[i]<savemaximum: counter[i]=savemaximum return counter
728x90'공부 > 알고리즘' 카테고리의 다른 글
[python] Codility Lesson 4-4. PermCheck (0) 2021.07.25 [python] Codility Lesson 4-3. MissingInteger (0) 2021.07.25 [python] Codility Lesson 4-1. FrogRiverOne (0) 2021.07.24 [python] Codility Lesson 3-3. TapeEquilibrium (0) 2021.07.24 [python] Codility Lesson 3-2. PermMissingElem (0) 2021.07.24