문제 설명 :
https://school.programmers.co.kr/learn/courses/30/lessons/87390
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제 요약 :
- n*n 이차원 배열에 대해 증가하는 테두리에 n 숫자로 채우는 배열 생성
- 행 단위로 잘라내어 1차원 배열 제작
- left부터 right까지 잘라서 새로운 배열 반환
문제 풀이 시간 : 30분
문제 성공 여부 : 성공
접근 방법(성공) :
1 2 3 4 5
2 2 3 4 5
3 3 3 4 5
4 4 4 4 5
5 5 5 5 5
- 위와 같은 배열 구조가 이어지는데, 특징을 하나 찾을 수 있다.
- 바로 i번째 행보다 작거나 같은 열은 모두 i+1의 수를 가진다
- 또한 i번째 행보다 큰 열은 모두 열+1의 수를 가진다
전체 코드(성공) :
class Solution {
public int[] solution(int n, long left, long right) {
int len = (int)(right-left);
int[] ans = new int[len+1];
int idx = 0;
for(long i=left; i<=right; i++){
int row = (int)(i / n);
int col = (int)(i % n);
int num = 0;
if(col <= row) num = row+1;
else num = col+1;
ans[idx++] = num;
}
return ans;
}
}
'코테 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스] 섬 연결하기 - java (3) | 2025.05.14 |
|---|---|
| [프로그래머스] 튜플 - java (1) | 2025.05.10 |
| [프로그래머스] 연속 부분 수열 합의 개수 - java (2) | 2025.05.06 |
| [프로그래머스] 이진 변환 반복하기 - java (4) | 2025.04.08 |
| [프로그래머스] 다음 큰 숫자 - java (2) | 2025.04.07 |