알고리즘/프로그래머스
[Python] n^2 배열 자르기
dding96
2022. 12. 20. 11:44
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
인덱스의 몫과 나머지만으로 위치를 찾는 방법이 있다는 걸 찾았음...
이런 건 도대체 어떻게 생각하는 걸까...ㅎㅎ