https://school.programmers.co.kr/learn/courses/30/lessons/87390#
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
class Solution {
public int[] solution(int n, long left, long right) {
int leng = (int)(right-left+1L);
int[] answer = new int[leng];
long nL = (long)n;
int lr;
if(left==0L) lr=0;
else lr = (int)(left/nL);
int lc;
if(left==0L) lc=0;
else if((int)(left%nL)==0) lc=n-1;
else lc = (int)(left%nL);
int x=0;
while(x<leng) {
if(lc>=lr) {answer[x]=lc+1; lc++;}
else {answer[x]=lr+1; lc++;}
if(lc>=n) {
lc=0;
lr++;
}
x++;
}
return answer;
}}
문제의 표에서 행 인덱스(lr left row)가 열 인덱스(lc left column)보다 작거나 같으면 1,2,3....n에서 원래 숫자를 유지할수있고 그게 아니라면 숫자가 바뀐다.(바뀐 숫자는 lr+1로 일정)
먼저 left/n, left%n으로 lr과 lc를 구해준다. 이때 long타입을 (int)로 형변환을 해주어야 한다.
그후 lc>=lr인 상황, 그 반대인 상황 각각 알맞게 처리해준 후 lc를 1씩 증가시키고, lc>=n이면 lc를 다시 0으로 초기화한다.
'CodingTest' 카테고리의 다른 글
[Java] 프로그래머스 레벨 2 #H-index (1) | 2024.02.26 |
---|---|
[Java] 프로그래머스 레벨2 #괄호 회전하기 (0) | 2024.02.20 |
[Java] 프로그래머스 레벨 2 #연속 부분 수열 합의 개수 (0) | 2024.02.17 |
[Java] 프로그래머스 레벨 2 #귤 고르기 (getOrDefault 중복값 세기, 메소드 참조) (1) | 2024.02.15 |
[Java] 프로그래머스 레벨 2 #예상 대진표 (1) | 2024.02.07 |