n^2 배열 자르기

magicdrill·2025년 2월 26일
0

n^2 배열 자르기

처음 시도에서는 이중 반복문으로 O(N^2)으로 수행시간 초과가 발생했다. 필요없는 반복순회도 있었고, 조건문도 포함되어 있었다.
좀 더 수식으로 접근하면 불필요한 조건과 반복을 피할 수 있다.

#include <string>
#include <vector>
#include <iostream>

using namespace std;

vector<int> solution(int n, long long left, long long right) {
    vector<int> answer;
    //int i, j, count = 0, num;
    
//     for(i = 1; i <= n; i++){
//        for(j = 1; j <= n; j++){
//            if(j <= i){
//                num = i;
//            }
//            else{
//                num = j;
//            }
           
//            if(count >= left){
//                answer.push_back(num);
//            }
//            if(count == right){
//                //answer.push_back(num);
//                 return answer;
//            }
           
//            count++;
//        }
//     }
    
    // 0 1 2 3 4 5 6 7 8 
    long long t;
    int r, c;
    
    for(t = left; t <= right; t++){
        r = t / n + 1;
        c = t % n + 1;
        cout << r << ", " << c << " : " << max(r, c) << "\n";
        answer.push_back(max(r, c));
    }
    
    return answer;
}

0개의 댓글