본문 바로가기

알고리즘/프로그래머스

[Python] n^2 배열 자르기

https://school.programmers.co.kr/learn/courses/30/lessons/87390

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

  • 나의 풀이
# n^2 배열 자르기

def solution(n, left, right):

    array = [[0] * n for _ in range(n)]

    for i in range(n):
        for j in range(n):
            if j <= i:
                array[i][j] += i+1
            else:
                array[i][j] += j+1

    flatten = []
    for i in array:
        flatten += i

    answer = flatten[left: right+1]
    return answer

또 시간 초과가 나버림....

 

  • 다른 풀이
def solution(n, left, right):
    answer = []

    for i in range(left, right + 1):
        answer.append(max(i // n, i % n) + 1)

    return answer
해당 위치 값 = max(해당 위치 // n, 해당 위치 % n) + 1

인덱스의 몫과 나머지만으로 위치를 찾는 방법이 있다는 걸 찾았음...

 

이런 건 도대체 어떻게 생각하는 걸까...ㅎㅎ

'알고리즘 > 프로그래머스' 카테고리의 다른 글

[Python] 모의 고사  (0) 2022.12.23
[Python] 소수 찾기  (0) 2022.12.21
[Python] 최고의 집합  (1) 2022.12.19
[Python] 기능 개발  (0) 2022.12.18
[Python] 이중 우선순위 큐  (0) 2022.12.09