[파이썬] 프로그래머스 : n^2 배열 자르기 (Lv.2)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
방향성 생각
그려서 규칙찾기
1 2 3 4 5
2 2 3 4 5
3 3 3 4 5
4 4 4 4 5
5 5 5 5 5
n = 3~5일 때 어떤식으로 진행되는지 볼 수 있다.
1행에서는 1이 1개, 나머지 등차수열
2행에서는 2가 2개, 나머지 등차수열
3행에서는 3이 3개, 나머지 등차수열
테스트 케이스 2번 같은 경우에는 7부터 14이다.
7은 2행, 14는 4행이다. 행은 left, right의 몫+1이다.
def solution(n,left,right):
answer = [] # 규칙 1234 2234 3334 4444
p1,q1 = divmod(left,n)
p2,q2 = divmod(right,n)
for i in range(p1,p2+1):
if i != n-1 : answer.extend([i+1]*i + list(range(i+1,n+1)))
else : answer.extend([i+1]*n)
if q2 == n-1 : return answer[q1:]
else: return answer[q1:-n+q2+1]
몫을 구해주고 그 행에 해당하는 리스트 만들어서 answer로 업데이트
나머지가 있는 경우에는 앞뒤로 잘라준다.
'Algorithm > etc' 카테고리의 다른 글
[파이썬] 프로그래머스 : 파일명 정렬 (Lv.2) (0) | 2023.07.15 |
---|---|
[파이썬] 프로그래머스 : 방문 길이 (Lv.2) (0) | 2023.07.11 |
[파이썬] 프로그래머스 : 테이블 해시 함수 (Lv.2) (0) | 2023.07.11 |
[파이썬] 프로그래머스 : 카펫 (Lv.2) (0) | 2023.07.10 |
[파이썬] 프로그래머스 : 우박수열 정적분 (Lv.2) (0) | 2023.07.08 |
[파이썬] 프로그래머스 : 줄 서는 방법 (Lv.2) (0) | 2023.07.06 |
[파이썬] 프로그래머스 : 거리두기 확인하기 (Lv.2) (0) | 2023.07.03 |
댓글