문제 설명

제한사항 및 입출력

풀이
정말 괴랄한 제한사항을 가지고 있다. 만약 주어진대로 2차원 배열을 만들어서 슬라이싱한다면 n^2이 걸리게 된다. 10^7^2 = 10^14이므로 택도 없다.
사실 그냥 단순히 2차원 배열을 1차원 배열로 매핑해주면 된다. 연속된 구간이기 때문에 문제없이 매핑해줄 수 있다.
(행, 열) 기준으로
1차원 -> 2차원: [(i // n), (i % n)]
2차원 -> 1차원: row * n + col % n
으로 인덱스를 매핑할 수 있다.
내 코드
def solution(n, left, right):
ans = []
for i in range(left, right + 1):
row = i // n
col = i % n
ans.append(max(row, col) + 1)
return ans
고찰
다른 풀이법은 생각나지 않는다...
'Computer Science > Problem Solving' 카테고리의 다른 글
| 프로그래머스 - 등굣길 (0) | 2025.11.05 |
|---|---|
| 프로그래머스 - k진수에서 소수 개수 구하기 (0) | 2025.11.05 |
| 프로그래머스 - 네트워크 (0) | 2025.11.03 |
| 프로그래머스 - 멀리 뛰기 (0) | 2025.11.03 |
| 프로그래머스 - 타겟 넘버 (0) | 2025.10.30 |