문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
알고리즘
없음
풀이
설명과 동영상이 장황하게 나와있지만
결국 배열의 left 번째 원소부터 right 번째 원소를 담아 반환하라는 문제이다.
배열의 (y, x) 좌표의 값은 y, x 중 큰 값임을 알 수 있고,
배열 크기가 n 일 때, 배열의 i 번째 원소의 좌표 (y, x) 는 다음과 같이 구할 수 있다.
y = i / n
x = i % n
이 문제에서는 1행, 1열부터 시작하기 때문에 y, x에 각각 1을 더해주고, 두 값 중 큰 값을 배열에 담으면 된다.
코드
import java.util.*;
class Solution {
public ArrayList<Integer> solution(int n, long left, long right) {
ArrayList<Integer> answer = new ArrayList<>();
for (long i = left; i <= right; i++) {
int y = (int) (i / n + 1);
int x = (int) (i % n + 1);
answer.add(Math.max(y, x));
}
return answer;
}
}
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 할인 행사 (Java) (0) | 2022.11.12 |
---|---|
[프로그래머스] 과일 장수 (Java) (0) | 2022.11.12 |
[프로그래머스] 등산코스 정하기 (Java) (0) | 2022.11.09 |
[프로그래머스] 두 큐 합 같게 만들기 (Java) (0) | 2022.11.09 |
[프로그래머스] 모음사전 (Java) (0) | 2022.11.09 |