๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“ ์•Œ๊ณ ๋ฆฌ์ฆ˜/Programmers

[C++/PGS] Lv.3 : ์ตœ๊ณ ์˜ ์ง‘ํ•ฉ (๋ฒกํ„ฐ, ์ˆ˜ํ•™)

728x90

 

https://school.programmers.co.kr/learn/courses/30/lessons/12938#

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr

 

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ ˆ๋ฒจ 3.

ํŠน๋ณ„ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ํ•„์š”ํ•˜์ง€ ์•Š๊ณ , ์ˆ˜ํ•™์  ์ ‘๊ทผ์œผ๋กœ ํ•ด๊ฒฐํ•˜๋ฉด ๋œ๋‹ค.

s/n (ํ‰๊ท )์— ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ฐ’๋“ค์˜ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์ตœ๋Œ€ ๊ณฑ์„ ๊ฐ€์ง„๋‹ค.

 

ํžŒํŠธ) ์˜ˆ๋ฅผ ๋“ค๋ฉด

s = 10, n = 3์ผ ๋•Œ

s/n = 3, s%n = 1์ด๋ฏ€๋กœ

์ตœ๋Œ€ ๊ณฑ์„ ๊ฐ€์ง€๋Š” ๋ฆฌ์ŠคํŠธ๋Š” { 3, 3, 4 } ์ด๋‹ค.

 

 

๋‚˜์˜ ํ’€์ด

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

vector<int> solution(int n, int s) {
    vector<int> answer;
    if(n>s) {
        answer.push_back(-1);
        return answer;
    }
    
    int avg = s / n;
    // ํ•ฉ์„ ๊ฐฏ์ˆ˜๋กœ ๋‚˜๋ˆˆ ๊ฐ’๊ณผ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ˆ˜๋“ค -> ๊ณฑ์ด ์ตœ๋Œ€๊ฐ€ ๋จ
    int last = s % n;
    // ๋‚จ์€ last๊ฐ’์„ 1์”ฉ ๋ถ„๋ฐฐํ•˜๋ฉด ๋œ๋‹ค!
    for(int i=0; i<n; ++i){
        if(i >= n-last) answer.push_back(avg+1);
        else answer.push_back(avg);
    }
    
    if(answer.size()<1) answer.push_back(-1);
    return answer;
}
728x90