반응형
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
- 가운데 글자 가져오기 자바
- m1 docker install
- 프로그래머스 가운데 글자 가져오기 파이썬
- 최단 경로 알고리즘
- 프로그래머스 나누어 떨어지는 숫자 배열 자바
- 빅데이터분석기사
- codeup 1020 자바
- 가운데 글자 가져오기 파이썬
- 청년 Ai Big Data 아카데미
- 프로그래머스 가운데 글자 가져오기 python
- docker remove
- 가운데 글자 가져오기 python
- docker 삭제
- m1 docker
- docker 완전 삭제
- 가운데 글자 가져오기 java
- codeup 1020 java
- 프로그래머스 가운데 글자 가져오기 자바
- 코드업 1020 java
- 최소 스패닝 트리
- 나누어 떨어지는 숫자 배열 python
- 프로그래머스 나누어 떨어지는 숫자 배열 파이썬
- 트리의 지름 자바
- 청년 AI Big Data 아카데미 13기
- 나누어 떨어지는 숫자 배열 java
- 최소 스패닝 트리 자바
- 트리의 지름 java
- 핸즈온 머신러닝
- 코드업 1020 자바
- 빅분기실기
Archives
- Today
- Total
NineTwo meet you
[프로그래머스/자바] n^2 배열 자르기 본문
반응형

문제 설명
정수 n, left, right가 주어집니다. 다음 과정을 거쳐서 1차원 배열을 만들고자 합니다.
- n행 n열 크기의 비어있는 2차원 배열을 만듭니다.
- i = 1, 2, 3, ..., n에 대해서, 다음 과정을 반복합니다.
- 1행 1열부터 i행 i열까지의 영역 내의 모든 빈 칸을 숫자 i로 채웁니다.
- 1행, 2행, ..., n행을 잘라내어 모두 이어붙인 새로운 1차원 배열을 만듭니다.
- 새로운 1차원 배열을 arr이라 할 때, arr[left], arr[left+1], ..., arr[right]만 남기고 나머지는 지웁니다.
정수 n, left, right가 매개변수로 주어집니다. 주어진 과정대로 만들어진 1차원 배열을 return 하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ n ≤ 107
- 0 ≤ left ≤ right < n2
- right - left < 105
입출력 예
n | left | right | result |
3 | 2 | 5 | [3,2,2,3] |
4 | 7 | 14 | [4,3,3,3,4,4,4,4] |
입출력 예 설명
입출력 예 #1
- 다음 애니메이션은 주어진 과정대로 1차원 배열을 만드는 과정을 나타낸 것입니다.

입출력 예 #2
- 다음 애니메이션은 주어진 과정대로 1차원 배열을 만드는 과정을 나타낸 것입니다.

설명
문제 그대로 구현하면?? 시간초과 or stackoverflow 발생!!
so 배열의 위치 값이 무엇을 나타내는지 식으로 구현할 수 있어야 한다.
처음 안 사실이지만 solution의 return 값을 바꿔도 된다! 신기!
코드
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.util.*; | |
public class PROGRAMMERS87390 { | |
public Long[] solution(int n, long left, long right) { | |
Long[] answer; | |
ArrayList<Long> al = new ArrayList<>(); | |
for(long i = left; i < right+1; i++){ | |
al.add(Math.max(i/n, i%n) + 1); | |
} | |
answer = new Long[al.size()]; | |
for(int i = 0; i < al.size(); i++) answer[i] = al.get(i); | |
return answer; | |
} | |
} |
반응형
'프로그래밍 문제 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/자바] 위클리 챌린지 10주차 교점에 별 만들기 (0) | 2021.10.20 |
---|---|
[프로그래머스/자바] 위클리 챌린지 6주차 복서 정렬하기 (0) | 2021.09.08 |
[프로그래머스/자바] 위클리챌린지 5주차 모음사전 (0) | 2021.09.02 |
[프로그래머스/자바] 위클리 챌린지 4주차 직업군 추천하기 (0) | 2021.08.24 |
[프로그래머스/자바] 기둥과 보 설치 (0) | 2021.08.22 |
Comments