https://school.programmers.co.kr/learn/courses/30/lessons/87390
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
코드
import java.util.*;
class Solution {
public int[] solution(int n, long left, long right) {
ArrayList<Integer> list = new ArrayList<>();
int[] tmp = new int[n];
int count = 0;
for(int i=0; i<n; i++){
tmp[i]=++count;
list.add(tmp[i]);
}
for(int i=0; i<n-1; i++){
for(int j=0; j<=i; j++ ){
tmp[j]++;
}
for(int k=0; k<n; k++){
list.add(tmp[k]);
}
}
for(int i=0; i<left; i++){
list.remove(0);
}
for(int i=(int)right+1; i<list.size(); i++){
list.remove((int)right+1);
}
int size= list.size();
Integer[] arr = list.toArray(new Integer[size]);
int[] answer = new int[size];
for(int i=0; i<size; i++){
answer[i] = arr[i];
}
return answer;
}
}
(컨디션이 안좋아..ㅠㅠ)
못풀었는데,,, 나름대로 규칙을 찾아서 ArrayList에 생성된 2차원 배열을 일렬로 나열하는 것은 성공했다.
하지만 ArrayList<Integer> 를 int[] 로 바꾸는 방법도 몰랐고, ArrayList 를 조작하면 사이즈가 계속 변경되는데 이를 인지하지 못하고 for 문에서 반복을 사용하는 것이 문제가 되고 있다.
다른 분의 풀이
https://seongho96.tistory.com/59
[Java] 프로그래머스 Lv2 - n^2 배열 자르기
코딩테스트 연습 - n^2 배열 자르기 정수 n, left, right가 주어집니다. 다음 과정을 거쳐서 1차원 배열을 만들고자 합니다. n행 n열 크기의 비어있는 2차원 배열을 만듭니다. i = 1, 2, 3, ..., n에 대해서,
seongho96.tistory.com
제한 사항을 보고 2차원 배열을 그대로 사용하면 안된다는 것을 깨닫는 게 중요한 것 같다.
그리고 더 쉬운 규칙을 발견했다는 것도 중요했다.
더 연습해야겠다.
'알고리즘 > 문제' 카테고리의 다른 글
| [프로그래머스] Lv2 타겟 넘버 / JAVA (0) | 2023.03.24 |
|---|---|
| [프로그래머스] Lv2 기능개발 / JAVA (0) | 2023.03.22 |
| *[프로그래머스] Lv2 리코쳇 로봇 / JAVA (0) | 2023.03.20 |
| *[프로그래머스] Lv2 이모티콘 할인행사 / JAVA (0) | 2023.03.17 |
| *[프로그래머스] Lv2 택배 배달과 수거하기 / JAVA (0) | 2023.03.15 |
