728x90
https://school.programmers.co.kr/learn/courses/30/lessons/87390
나의 풀이
- 2차원을 1차원으로 변경하고 주어진 left와 right에 맞게 배열을 자르는 문제
n | 4 |
left | 7 |
right | 14 |
- 7과 14가 해당하는 배열을 생성하여 1차원으로 만든다
[2, 2, 3, 4, 3, 3, 3, 4, 4, 4, 4, 4]
- 줄어든 범위만큼 left와 right도 줄여서 슬라이스 하여 답을 도출함
[4, 3, 3, 3, 4, 4, 4, 4]
def solution(n, left, right):
s = left // n
e = right // n
a_list= list()
base_list = [i+1 for i in range(n)]
for i in range(s, e+1):
a = base_list.copy()
a[0:i+1] = [i+1 for _ in range(i+1)]
a_list += a
answer = a_list[left-(n*s) : right-(n*s)+1]
return answer
슬라이스를 활용하는 문제로 접근을 하였으나 시간이 오래 걸림
다른 사람의 풀이
n | 4 |
left | 7 |
right | 14 |
- for i in range(left, right+1)의 i에 max(i//n,i%n)+1 처리를 해주어 둘 중 큰 값을 리스트에 넣어 return함
- %연산은 값이 차례대로 나오게 하고 // 연산은 연속으로 값이 나오게 함
def solution(n, left, right):
answer = []
for i in range(left,right+1):
answer.append(max(i//n,i%n)+1)
return answer
728x90
'Coding Test > programmers' 카테고리의 다른 글
[Python] 파이썬 프로그래머스 빛의 경로 사이클 (0) | 2023.03.08 |
---|---|
[Python] 파이썬 프로그래머스 연속 부분 수열 합의 개수 (0) | 2023.02.28 |
[Python] 파이썬 프로그래머스 귤 고르기 (0) | 2023.02.27 |
[Python] 파이썬 프로그래머스 튜플 (0) | 2023.02.10 |
[Python] 파이썬 프로그래머스 캐시 (0) | 2023.02.10 |