문제

설명

  • 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;
}

댓글을 남기시려면 Github 로그인을 해주세요