첫 풀이
1. 이중 for문을 돌면서 i와j 중 큰 값에 1을 더해 배열에 추가하면 문제에서 원하는 배열을 얻을 수 있다
2. left와 right를 인덱스 삼아 자른다
def solution(n, left, right):
answer = []
#board=[[0]*n for _ in range(n)]
for i in range(n):
for j in range(n):
answer.append(max(i,j)+1)
answer=answer[left:right+1]
return answer
시간 초과 발생
더 나은 답안
1. n이 10의 7제곱까지기 때문에 이차원 배열을 사용하면 시간초과 발생
2. 문제에서 필요로 하는 left ~ right 구간만 구하기
3. 인덱스를 통해 x,y 좌표를 구한다
4. 좌표 중 큰 값에 1을 더하면 끝
def solution(n, left, right):
answer = []
for i in range(left,right+1):
answer.append(max(i//n,i%n)+1)
return answer
배운 점
1. 제한 사항 변수 범위 확인하기
2. 문제가 쉬우면 시간초과 잘 확인해야함
반응형
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 파이썬 문제풀이 - 프로세스 (0) | 2023.04.25 |
---|---|
[프로그래머스] 파이썬, 자바 문제풀이 - [1차] 캐시 (0) | 2023.04.24 |
[프로그래머스] 파이썬 문제풀이 - 등굣길 (0) | 2023.04.20 |
[프로그래머스] SQL 문제풀이 - 조건에 부합하는 중고거래 댓글 조회하기 (1) | 2023.03.13 |
[프로그래머스] 파이썬 문제풀이 - 등굣길 (0) | 2023.03.04 |
댓글