프로그래머스(Programmers)

프로그래머스 n^2 배열 자르기 C++

cosmohoo 2022. 3. 21. 00:38
반응형

문제 설명

#include <string>
#include <vector>

using namespace std;

vector<int> solution(int n, long long left, long long right) {
    vector<int> answer;
    
    long divisor=0, mod=0; //나누는 수, 나머지 
    
    for(long long idx =left; idx <= right; idx++)
    {
        divisor = idx / n;
        mod = idx % n;
       
        if(mod > divisor)answer.push_back((mod+1));
        else answer.push_back((divisor+1));
    }
    
    
    return answer;
}

 

제한사항

  • 1 ≤ n ≤ 107
  • 0 ≤ left  right < n2
  • right - left < 105

입출력 예

n                       left                     right                           result

3 2 5 [3,2,2,3]
4 7 14 [4,3,3,3,4,4,4,4]

 

 

=> 수학식을 세워 풀어야하는 문제입니다. 

=> 인터넷에 있는 많은 풀이들이 추가된 TEST CASE들에 의해 틀렸다고 나옵니다. 

=> 아래에 풀이를 써둔 이미지를 붙여두겠습니다. 

 

문제 풀이&nbsp;

 

 

 

#include <string>
#include <vector>

using namespace std;

vector<int> solution(int n, long long left, long long right) {
    vector<int> answer;
    
    long divisor=0, mod=0; //나누는 수, 나머지 
    
    for(long long idx =left; idx <= right; idx++)
    {
        divisor = idx / n;
        mod = idx % n;
       
        if(mod > divisor)answer.push_back((mod+1));
        else answer.push_back((divisor+1));
    }
    
    
    return answer;
}
반응형