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

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

 

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

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr


1. ๋ฌธ์ œ

ํ•ฉ๊ณผ ๋ถ€๋ถ„์ง‘ํ•ฉ ๊ฐœ์ˆ˜๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, ์ตœ๊ณ ์˜ ์ง‘ํ•ฉ์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

์ตœ๊ณ ์˜ ์ง‘ํ•ฉ ์กฐ๊ฑด์€ ์›์†Œ๋“ค์˜ ๊ณฑ์ด ์ตœ๋Œ€๊ฐ€ ๋  ๋•Œ์ด๋‹ค.

 

2. ํ’€์ด

์ฒ˜์Œ์—” ๋ฐ”๋กœ ๋ถ€๋ถ„์ง‘ํ•ฉ or ์กฐํ•ฉ์ด๊ฒ ๊ฑฐ๋‹ˆ ํ•˜๊ณ  ์ ‘๊ทผํ–ˆ๋‹ค.

ํ•˜์ง€๋งŒ ํ’€์ด๊ฐ€ ๋ณต์žกํ–ˆ๊ณ  ๋‹ค๋ฅธ ์ ‘๊ทผ ๋ฐฉ๋ฒ•์ด ์žˆ์„ ๊ฒƒ ๊ฐ™์•„ ๋ธ”๋กœ๊ทธ๋ฅผ ์ฐธ๊ณ ํ–ˆ๋Š”๋ฐ

์ˆ˜ํ•™์œผ๋กœ ํ‘ผ ํ’€์ด๊ฐ€ ๋งŽ์•˜๋‹ค. ์ฐธ๊ณ ํ•ด์„œ ๋‚˜๋„ ์ˆ˜ํ•™์œผ๋กœ ํ’€์–ด๋ณด์•˜๋‹ค.

 

1. ์šฐ์„  ๊ฐœ์ˆ˜๊ฐ€ ํ•ฉ๋ณด๋‹ค ํฌ๋ฉด 1๋ผ๋ฆฌ์˜ ํ•ฉ ๋ณด๋‹ค๋„ ํฌ๊ฒŒ ๋˜๋ฏ€๋กœ -1์„ return ํ•ด์ฃผ๊ณ  ์‹œ์ž‘ํ•œ๋‹ค.

2. ํ•ต์‹ฌ์€ bottom-up ๋ฐฉ์‹์ด๋‹ค.

- ํ•ฉ์—์„œ ๊ฐœ์ˆ˜๋ฅผ ๋‚˜๋ˆ„๋ฉด ํ•ด๋‹น ์ž๋ฆฌ์— ์˜ฌ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

- ํ•ฉ์—์„œ ๊ทธ ๊ฐ’์„ ๋นผ์ฃผ๊ณ , ๊ฐœ์ˆ˜๋„ ํ•˜๋‚˜ ์ค„์–ด๋“ค์—ˆ์œผ๋‹ˆ ๋นผ์ค€ ํ›„

๋‹ค์‹œ ํ•ฉ์—์„œ ๊ฐœ์ˆ˜๋ฅผ ๋‚˜๋ˆ„๋ฉด ๋˜ ๊ทธ ๋‹ค์Œ ์ž๋ฆฌ์— ์˜ฌ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๊ฒƒ์˜ ๋ฐ˜๋ณต์ด๋‹ค.

๋ฐ˜๋ณต๋ฌธ์€ ์ตœ๋Œ€ n๋ฒˆ(์ตœ์ดˆ n) ๋Œ๊ฒŒ ๋œ๋‹ค.

3. ์ฃผ์˜ํ•  ์ ์€ for๋ฌธ์—์„œ n์˜ ๊ฐ’์€ ๋ณ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฒ”์œ„์˜ ์ตœ๋Œ€๊ฐ’์œผ๋กœ๋Š” ans.length๋กœ ๊ฐœ์ˆ˜๋ฅผ ์„ค์ •ํ–ˆ๋‹ค.

 

3. ์ฝ”๋“œ

class Solution {
    
    public int[] solution(int n, int s) {
        if (n > s) return new int[] {-1};
        int[] ans = new int[n];
        for (int i=0; i<ans.length; i++) {
            ans[i] = s/n;
            s -= s/n;
            n--;
        }
        return ans;
    }
}

4. ์‚ฌ๋‹ด

์—ฌ๋Ÿฌ ๋ฐฉํ–ฅ์œผ๋กœ ์ ‘๊ทผํ•ด๋ณด์ž