728x90
반응형
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
📌 접근 방법
- 필요한 길이 계산
- left ~ right 범위의 길이는int length = (int)(right - left + 1);
- int로도 충분히 처리 가능 (길이가 10^7 이하)
- 1차원 인덱스를 2차원 인덱스로 변환
- i = idx / n
- j = idx % n
- 예: n = 3일 때idx = 4 → i = 1, j = 1 → arr[1][1] = max(1, 1) + 1 = 2
- 배열의 값 계산
- 위에서 구한 i, j를 바탕으로value = max(i, j) + 1
- 배열을 직접 만들지 않고 값만 수집
- 반복문을 돌며 해당 값만 추출하여 결과 배열에 저장
PASS CODE
import java.util.*;
class Solution {
public int[] solution(int n, long left, long right) {
int size = (int) (right - left + 1);
int[] answer = new int[size];
for(long idx=left; idx<=right; idx++) {
int i = (int)(idx/n) + 1;
int j = (int)(idx%n) + 1;
answer[(int)(idx-left)] = Math.max(i, j);
}
return answer;
}
}
728x90
반응형
'Coding Test > Programmers' 카테고리의 다른 글
[Java][Programmers] 의상 (0) | 2025.03.13 |
---|---|
[Java][Programmers] 행렬의 곱셈 (2) | 2025.03.13 |
[Java][Programmers] 할인 행사 (0) | 2025.03.12 |
[JAVA][Programmers] 괄호 회전하기 (1) | 2025.03.12 |
[JAVA][Programmers] 예상 대진표 ⭐️ (0) | 2025.03.12 |