본문 바로가기

알고리즘 · 코딩

[프로그래머스] n^2 배열 자르기

문제 링크

https://programmers.co.kr/learn/courses/30/lessons/87390

 

코딩테스트 연습 - n^2 배열 자르기

정수 n, left, right가 주어집니다. 다음 과정을 거쳐서 1차원 배열을 만들고자 합니다. n행 n열 크기의 비어있는 2차원 배열을 만듭니다. i = 1, 2, 3, ..., n에 대해서, 다음 과정을 반복합니다. 1행 1열부

programmers.co.kr


C++ 풀이

#include <string>
#include <vector>
using namespace std;

vector<int> solution(int n, long long left, long long right) {
    int N = right - left + 1; //1차원 배열 크기

    vector<int> answer(N);
    for (int i = 0; i < N; ++i, ++left) {
        int r = left / n; //행
        int c = left % n; //열
        answer[i] = (r < c ? c : r) + 1; //행과 열 값 중 더 큰 값 + 1을 넣음
    }

    return answer;
}

 

 

 

 

 

반응형