Notice
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 |
31 |
Tags
- SwiftUI
- 인프런파이썬강의
- TOEFL
- 웹크롤링
- 리프2기
- 파이썬
- 파이썬웹크롤링
- 유학토플
- swift
- 인프런
- 교환학생준비
- nodeJS
- 자바스크립트
- JS
- 토플공부
- 노드JS
- 토플
- 파이썬중급강의
- 인프런파이썬
- 개발일지
- 파이썬중급
- 스위프트
- 인프런오리지널
- Python3
- 토플공부수기
- 우리를위한프로그래밍
- 카카오톡채팅봇
- 교환학생토플
- 인프런강의
- IOS프로그래밍
- Today
- 119
- Total
- 235,623
먹고 기도하고 코딩하라
프로그래머스 :: n^2 배열 자르기 (Python3) 본문
728x90
728x90
코딩테스트 연습 - n^2 배열 자르기
정수 n, left, right가 주어집니다. 다음 과정을 거쳐서 1차원 배열을 만들고자 합니다. n행 n열 크기의 비어있는 2차원 배열을 만듭니다. i = 1, 2, 3, ..., n에 대해서, 다음 과정을 반복합니다. 1행 1열부
programmers.co.kr
문제 설명
이 문제는 딱히 어떤 알고리즘이 필요한 문제는 아니다.
그리고 예제에서 보여주는대로 정말 배열을 n*n 크기 리스트를 만들어서 풀 수 있는 문제가 아니다.
(제한사항을 보면 1000만*1000만까지 가는데 학생.. 감당할 수 있겠어?)
예제에서 보여준 예시를 보면 4*4 사각형은 다음과 같이 채워진다.
1 2 3 4
2 2 3 4
3 3 3 4
4 4 4 4
이렇게 n*n 정사각형이 나오게 되는데,
잘 관찰해 보면 행/열 중 큰 값을 자기 값으로 갖게 된다.
예를 들어 3행 1열에 있는 값은 3이다.
다행히도 left, right 모두 실제로 인덱스가 시작하는 번호인 0번부터 시작한다.
그러므로 우리가 해야 할 일은 left부터 right+1 번호까지 루프를 도는 루프 변수 i를 만들어서 이 i를 n으로 나눈 몫과 나머지 중 더 큰 것을 골라 1을 더해주는 것이다.
파이썬은 divmod가 있기 때문에 한 줄로 해결 가능하다.
def solution(n, left, right):
return [max(divmod(i, n))+1 for i in range(left, right+1)]
728x90
반응형
'자료구조&알고리즘 > 프로그래머스' 카테고리의 다른 글
[Python3] 프로그래머스 lv.2 12924 숫자의 표현 (0) | 09:51:08 |
---|---|
[Python3] 프로그래머스 lv.2 1844 게임 맵 최단거리 (0) | 2022.06.27 |
[Python3] 프로그래머스 lv.2 42747 H-Index (0) | 2022.06.25 |
[Python3] 프로그래머스 lv2. 64065 튜플 (0) | 2022.06.21 |
프로그래머스 :: n^2 배열 자르기 (Python3) (0) | 2022.05.02 |
- Tag
- 프로그래머스
0 Comments