기억은 짧고 기록은 길다
[프로그래머스/Programmers] n^2 배열 자르기 - Python 본문
Link
Solution
처음에 풀때는 간단한 문제라 생각하고 풀었지만 역시나 시간초과에 걸리고 말았다.
def solution(n, left, right):
answer = []
for i in range(n):
for j in range(n):
answer.append(max(i + 1, j + 1))
return answer[left:right + 1]
Other Solution
이에 left와 right의 값으로 해당 위치의 값을 찾을 방법을 고민해보기 시작했고 그 결과 위치값에서 n을 나눠준 나머지와 몫 중 큰 값이 1을 더해준 값이 해당 위치의 값이라는 사실을 알게 되었다.
def solution(n, left, right):
answer = []
for i in range(left, right + 1):
answer.append(max(i // n, i % n) + 1)
return answer
🔑 key point: 해당 위치 값 = max(해당 위치 // n, 해당 위치 % n) + 1
📌 Tip: max(i // n, i % n)
'CodingTest > programmers' 카테고리의 다른 글
[프로그래머스/Programmers] n진수 게임 - Python (0) | 2021.11.12 |
---|---|
[프로그래머스/Programmers] 괄호 회전하기 - Python (0) | 2021.11.10 |
[프로그래머스/Programmers] [3차] 파일명 정렬 - Python (0) | 2021.10.09 |
[프로그래머스/Programmers] 수식 최대화 - Python (0) | 2021.10.08 |
[프로그래머스/Programmers] 오픈채팅방 - Python (0) | 2021.10.07 |
Comments