문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/87390
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 해설
Idea
- Greedy
- n의 크기가 굉장히 크기 때문에 2차원 배열을 만드는 것만으로 시간 초과가 발생할 것을 예상
- r행 c열의 값은 max(r,c)+1과 같고 1차원 배열의 인덱스 i에 대해 r은 i//n, c는 i%n와 동일
- left부터 right까지의 인덱스를 규칙에 맞는 값으로 변환하여 반환
Time Complexity
- O(N) = 10^5
Data Size
- n: 1 <= int <= 10^7
- left, right: 0 <= long <= n^2
- right - left < 10^5
해설 코드
def solution(n, left, right):
return [max(divmod(i,n))+1 for i in range(left,right+1)]
'Tech > Algorithm' 카테고리의 다른 글
[백준 11725] 트리의 부모 찾기 (Python) (0) | 2022.08.18 |
---|---|
[프로그래머스] 쿼드압축 후 개수 세기 (Python) (0) | 2022.08.17 |
[프로그래머스]n진수 게임 (Python) (0) | 2022.08.16 |
[백준 1697] 숨바꼭질 (Python) (0) | 2022.08.16 |
[백준 1676] 팩토리얼 0의 개수 (Python) (0) | 2022.08.16 |