최대 1 분 소요

문제 링크

다른 풀이

def solution(n, left, right):
    
    result = []
    
    for i in range(left, right+1):
        
        # left ~ right 사이의 숫자를 n으로 나누면
        # 몫은 y(index) 좌표를
        # 나머지는 x(index) 좌표를 알 수 있다.
        y, x = i//n, i%n
        
        # 넣을 값은 (y,x 좌표중 큰 값) + 1
        # [0][0]=1 [0][1]=2 [0][2]=3 [0][3]=4
        # [1][0]=2 [1][1]=2 [1][2]=3 [1][3]=4
        # [2][0]=3 [2][1]=3 [2][2]=3 [2][3]=4
        # [3][0]=4 [3][1]=4 [3][2]=4 [3][3]=4
        value = max(y,x) + 1
        
        result.append(value)
    
    return result
출처: https://1ets-just-do-it.tistory.com/144 [파이썬은 신이야🔥🔥🔥:티스토리]

풀이 해석

  • left~right 사이의 수를 n으로 나누면 몫은 행 나머지는 열의 인덱스값을 알 수 있다. 이때 행열 인덱스 값중 큰값의 +1값이 value값이므로 이를 리스트에 append한다

배울 점

  • 일렬로 나열한 행렬에서 특정 인덱스를 n으로 나눈 몫과 나머지는 행과 열로 표현된다
  • max 함수의 이용

댓글남기기