Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 파일명 변경
- IH
- 오픽독학
- 스택
- 파이썬
- 완전이진트리
- %H
- set
- 복사
- Deque
- 딕셔너리
- 구현
- date_format
- 우선순위큐
- issubset
- 브루트포스
- 오픽
- Inner Join
- heapq
- 최대재귀높이
- 이진탐색
- 삼중for문 탈출
- bfs
- dfs
- 백준
- 슬라이싱
- 약수구하기
- 재귀
- not null
- 제곱근
Archives
- Today
- Total
나예
[프로그래머스] n^2 배열 자르기(파이썬) 본문
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/87390
2. 풀이 및 코드
이 문제는 배열일때의 좌우& 상하 인덱스를 이용해 배열 값을 구함
좌우 & 상하 인덱스 값 중 큰값+1이 배열 값임
[0,0] => 1 | [0,1] => 2 | [0,2] =>3 |
[1,0] =>2 | [1,1] =>2 | [1,2] =>3 |
[2,0] => 3 | [2,1] =>3 | [2,2] =>3 |
시간 초과버전(틀림ㅇ_<)
def solution(n, left, right):
answer=[]
arr = [[0]*n for i in range(n)]
flag=0
for i in range(n):
for j in range(n):
arr[i][j] = max(i,j)+1
if i*n +j == left:
flag =1
if flag ==1:
answer.append(arr[i][j])
if i*n + j ==right:
flag = 0
return answer
n 최대가 10**7인걸 왜 안봤지..
이중 for문으로 모든걸 돌리면 시간초과가 나는걸 보니 arr 모든 원소를 구하고 left ~right를 구하는것 보단 left~right만 구해야할 드읏
맞은 버전
def solution(n, left, right):
answer=[]
for k in range(left,right+1):
i = k//n
j = k%n
#print(i,j, max(i,j)+1)
answer.append(max(i,j)+1)
return answer
728x90