문제 설명 및 제한사항
아이디어 및 해결 방법
코드
def rth_row(r, n):
return [r] * r + list(range(r + 1, n + 1))
def solution(n, left, right):
# left, right가 몇행 몇열인지 계산
leftr, leftc = left // n + 1, left % n + 1
rightr, rightc = right // n + 1, right % n + 1
# 예외처리: leftr == rightr인 경우는 해당 행만 리턴한다.
if leftr == rightr:
row = rth_row(leftr, n)
return row[leftc-1:rightc]
answer = []
answer += rth_row(leftr, n)[leftc-1:]
for r in range(leftr + 1, rightr):
answer += rth_row(r, n)
answer += rth_row(rightr, n)[:rightc]
return answer
Python
복사
출처
프로그래머스 코딩테스트 연습 https://school.programmers.co.kr/learn/challenges