-
[프로그래머스] n^2 배열 자르기알고리즘 2023. 7. 11. 14:13728x90
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/87390
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
2. 접근
1. 처음에는 누구나 생각했을 방법인 1차원 배열로 만들어서 index로 [left:right+1]을 해보았다
그것도 두가지 방법으로,,,2. 당연히 시간초과가 나서 몫과 나머지에 대한 생각을 했다.
3. index로 나누는것 중 2번째 방법에서 (행 / 열) 중 큰값이 해당 행열의 값이 된다는 생각이 떠올렸고, 몫과 나머지를 구한 다음에 큰값 + 1을 해주어서 board에 넣어주는 방법으로 해보니 되었다!
3. 풀이
# 틀림 - 시간 초과 def solution(n, left, right): board = [] i = 1 while i != n+1: for _ in range(i): board.append(i) for j in range(i+1,n+1): board.append(j) i += 1 return board[left:right+1] # 틀림 - 시간 초과 def solution(n, left, right): board = [] for i in range(1,n+1): for j in range(1,n+1): board.append(max(i,j)) return board[left:right+1] def solution(n, left, right): board = [] for i in range(left, right+1): a = i // n b = i % n if a < b: board.append(b+1) else: board.append(a+1) return board
'알고리즘' 카테고리의 다른 글
[프로그래머스] 예상 대진표 (0) 2023.07.12 [프로그래머스] 점 찍기 (0) 2023.07.11 [프로그래머스] 방문 길이 (0) 2023.07.09 [프로그래머스] 의상 (0) 2023.07.08 [프로그래머스] 전화번호 목록 (0) 2023.06.29