[프로그래머스 Lv.2] n^2 배열 자르기 (Python)

지윤·2023년 5월 27일
0

👩🏻‍💻

처음부터 끝까지 for문을 돌려서 max값을 넣어주었지만 이 경우 시간초과가 발생하였다.
긴 시간 고민하여 left, right 사이만 돌아주면서 값을 추가해줘야겠다고 생각했다.
예시를 보면 리스트에 들어가는 값들을 알 수 있었고, 그 값들을 분석해 보면 (max((i // n), (i % n)) + 1)로 들어간다는 것을 알 수 있었다. 이를 통해 시간 초과를 해결하여 문제를 풀 수 있었다.


거진 한달 만에 알고리즘을 다시 풀었는데 정말 머리가 굳었다는게 느껴졌다... 문제 이해를 오랫동안 못했는데 이해하고 나서도 솔루션이 안보였다. 알고리즘은 꾸준히 풀지않으면 다 까먹는 것 같다 🤦🏻‍♀️

코드

def solution(n, left, right):
    answer = []

    left, right = int(left), int(right)
    for i in range(left, right+1):
        answer.append(max((i // n), (i % n)) + 1)
        
    return answer
profile
떠돌이 컴공

0개의 댓글