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

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

[C++/PGS] Lv.0 : ์—ฐ์†๋œ ์ˆ˜์˜ ํ•ฉ (๊ตฌํ˜„)

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

 

๋ฌธ์ œ ์„ค๋ช…

์—ฐ์†๋œ ์„ธ ๊ฐœ์˜ ์ •์ˆ˜๋ฅผ ๋”ํ•ด 12๊ฐ€ ๋˜๋Š” ๊ฒฝ์šฐ๋Š” 3, 4, 5์ž…๋‹ˆ๋‹ค. ๋‘ ์ •์ˆ˜ num๊ณผ total์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ์—ฐ์†๋œ ์ˆ˜ num๊ฐœ๋ฅผ ๋”ํ•œ ๊ฐ’์ด total์ด ๋  ๋•Œ, ์ •์ˆ˜ ๋ฐฐ์—ด์„ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ๋‹ด์•„ returnํ•˜๋„๋ก solutionํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด๋ณด์„ธ์š”.


์ œํ•œ์‚ฌํ•ญ
  • 1 ≤ num ≤ 100
  • 0 ≤ total ≤ 1000
  • num๊ฐœ์˜ ์—ฐ์†๋œ ์ˆ˜๋ฅผ ๋”ํ•˜์—ฌ total์ด ๋  ์ˆ˜ ์—†๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ์—†์Šต๋‹ˆ๋‹ค.

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ž…๋ฌธ ๋ฌธ์ œ ์ค‘์—

์ •๋‹ต๋ฅ ์ด ๋‚ฎ์€ ๋ฌธ์ œ๋“ค ์ค‘ ํ•˜๋‚˜์ด๋‹ค.

ํ…Œ์ŠคํŠธ์ผ€์ด์Šค์—์„œ ๊ทœ์น™์„ ์ฐพ์•„์„œ ๊ณต์‹ํ™”์‹œ์ผœ์•ผ ํ•œ๋‹ค!

 

์ด ์˜ˆ์‹œ๋ฅผ ๋ณด๋‹ˆ

result์˜ ๊ฐ€์šด๋ฐ ์ˆซ์ž๋Š” ํ•ญ์ƒ total/num์˜ ๊ฐ’(mid)์ด๋‹ค.

๊ทธ๋Ÿฌ๋ฉด num์ด ํ™€์ˆ˜์ผ ๋•Œ ๋ฆฌ์ŠคํŠธ์˜ ์‹œ์ž‘๊ฐ’์€ mid - num/2์ด๋‹ค.

๊ทธ๋Ÿฐ๋ฐ num์ด ์ง์ˆ˜์ผ ๋•Œ๋Š” num/2๋ฒˆ์งธ์— mid๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ์‹œ์ž‘๊ฐ’์ด mid - num/2 + 1์ด ๋œ๋‹ค.

 

 

 

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

#include <string>
#include <vector>

using namespace std;

vector<int> solution(int num, int total) {
    vector<int> answer;
    int mid = total/num;
    int start = mid - num/2;
    if(num%2==0) start += 1;
    for(int i=0; i<num; ++i){
        answer.push_back(start+i);
    }
    return answer;
}