코딩 공부 - 프로그래머스 - n^2 배열 자르기
문제
설명
- 3 * 3 배열 기준으로 설명
1 2 3
2 2 3
3 3 3
- 2차원 배열을 1차원 배열로 변경 후
1 2 3 2 2 3 3 3 3
- 주어진 left ~ right에 포함된 배열의 원소를 순서대로 저장하는 문제
- left = 2, right = 5일 경우
- 결과는 [3, 2, 2, 3]
- 2배열의 인덱스를 예로 x, y 중 가장 큰 수의 + 1 한 값이 배열의 요소인 것을 알 수 있다.
코드
#include <string>
#include <vector>
#include <cmath>
using namespace std;
vector<int> solution(int n, long long left, long long right) {
vector<int> answer;
for (long long i = left; i <= right; i++) {
// 배열의 인덱스를 구한 후 인덱스 에서 가장 큰 수에 +1 한 값을 추가
long long x = i / n;
long long y = i % n;
int tmp = max(y, x) + 1;
answer.push_back(tmp);
}
return answer;
}
공유하기
Twitter Facebook LinkedIn댓글을 남기시려면 Github 로그인을 해주세요