๋ฌธ์ ์ค๋ช
์นด์นด์ค๋ฐฐ ์๊ถ๋ํ๊ฐ ์ด๋ ธ์ต๋๋ค.
๋ผ์ด์ธ์ ์ ๋ฒ ์นด์นด์ค๋ฐฐ ์๊ถ๋ํ ์ฐ์น์์ด๊ณ ์ด๋ฒ ๋ํ์๋ ๊ฒฐ์น์ ๊น์ง ์ฌ๋ผ์์ต๋๋ค. ๊ฒฐ์น์ ์๋๋ ์ดํผ์น์
๋๋ค.
์นด์นด์ค๋ฐฐ ์๊ถ๋ํ ์ด์์์ํ๋ ํ ์ ์์ ์ฐ์ ์ฐ์น๋ณด๋ค๋ ๋ค์ํ ์ ์๋ค์ด ์๊ถ๋ํ์์ ์ฐ์นํ๊ธฐ๋ฅผ ์ํฉ๋๋ค. ๋ฐ๋ผ์, ์๊ถ๋ํ ์ด์์์ํ๋ ๊ฒฐ์น์ ๊ท์น์ ์ ๋ํ ์ฐ์น์์ธ ๋ผ์ด์ธ์๊ฒ ๋ถ๋ฆฌํ๊ฒ ๋ค์๊ณผ ๊ฐ์ด ์ ํ์ต๋๋ค.
- ์ดํผ์น๊ฐ ํ์ด n๋ฐ์ ๋ค ์ ํ์ ๋ผ์ด์ธ์ด ํ์ด n๋ฐ์ ์ฉ๋๋ค.
- ์ ์๋ฅผ ๊ณ์ฐํฉ๋๋ค.
- ๊ณผ๋ ํ์ ์๋ ์ฌ์ง์ฒ๋ผ ์๊ฒผ์ผ๋ฉฐ ๊ฐ์ฅ ์์ ์์ ๊ณผ๋ ์ ์๋ 10์ ์ด๊ณ ๊ฐ์ฅ ํฐ ์์ ๋ฐ๊นฅ์ชฝ์ ๊ณผ๋ ์ ์๊ฐ 0์ ์ ๋๋ค.
- ๋ง์ฝ, k(k๋ 1~10์ฌ์ด์ ์์ฐ์)์ ์ ์ดํผ์น๊ฐ a๋ฐ์ ๋งํ๊ณ ๋ผ์ด์ธ์ด b๋ฐ์ ๋งํ์ ๊ฒฝ์ฐ ๋ ๋ง์ ํ์ด์ k์ ์ ๋งํ ์ ์๊ฐ k ์ ์ ๊ฐ์ ธ๊ฐ๋๋ค. ๋จ, a = b์ผ ๊ฒฝ์ฐ๋ ์ดํผ์น๊ฐ k์ ์ ๊ฐ์ ธ๊ฐ๋๋ค. k์ ์ ์ฌ๋ฌ ๋ฐ ๋งํ๋ k์ ๋ณด๋ค ๋ง์ ์ ์๋ฅผ ๊ฐ์ ธ๊ฐ๋ ๊ฒ ์๋๊ณ k์ ๋ง ๊ฐ์ ธ๊ฐ๋ ๊ฒ์ ์ ์ํ์ธ์. ๋ํ a = b = 0 ์ธ ๊ฒฝ์ฐ, ์ฆ, ๋ผ์ด์ธ๊ณผ ์ดํผ์น ๋ชจ๋ k์ ์ ๋จ ํ๋์ ํ์ด๋ ๋งํ์ง ๋ชปํ ๊ฒฝ์ฐ๋ ์ด๋ ๋๊ตฌ๋ k์ ์ ๊ฐ์ ธ๊ฐ์ง ์์ต๋๋ค.
- ์๋ฅผ ๋ค์ด, ์ดํผ์น๊ฐ 10์ ์ 2๋ฐ ๋งํ๊ณ ๋ผ์ด์ธ๋ 10์ ์ 2๋ฐ ๋งํ์ ๊ฒฝ์ฐ ์ดํผ์น๊ฐ 10์ ์ ๊ฐ์ ธ๊ฐ๋๋ค.
- ๋ค๋ฅธ ์๋ก, ์ดํผ์น๊ฐ 10์ ์ 0๋ฐ ๋งํ๊ณ ๋ผ์ด์ธ์ด 10์ ์ 2๋ฐ ๋งํ์ ๊ฒฝ์ฐ ๋ผ์ด์ธ์ด 10์ ์ ๊ฐ์ ธ๊ฐ๋๋ค.
- ๋ชจ๋ ๊ณผ๋ ์ ์์ ๋ํ์ฌ ๊ฐ ์ ์์ ์ต์ข ์ ์๋ฅผ ๊ณ์ฐํฉ๋๋ค.
- ์ต์ข ์ ์๊ฐ ๋ ๋์ ์ ์๋ฅผ ์ฐ์น์๋ก ๊ฒฐ์ ํฉ๋๋ค. ๋จ, ์ต์ข ์ ์๊ฐ ๊ฐ์ ๊ฒฝ์ฐ ์ดํผ์น๋ฅผ ์ฐ์น์๋ก ๊ฒฐ์ ํฉ๋๋ค.
ํ์ฌ ์ํฉ์ ์ดํผ์น๊ฐ ํ์ด n๋ฐ์ ๋ค ์ ํ์ด๊ณ ๋ผ์ด์ธ์ด ํ์ด์ ์ ์ฐจ๋ก์
๋๋ค.
๋ผ์ด์ธ์ ์ดํผ์น๋ฅผ ๊ฐ์ฅ ํฐ ์ ์ ์ฐจ์ด๋ก ์ด๊ธฐ๊ธฐ ์ํด์ n๋ฐ์ ํ์ด์ ์ด๋ค ๊ณผ๋
์ ์์ ๋งํ์ผ ํ๋์ง๋ฅผ ๊ตฌํ๋ ค๊ณ ํฉ๋๋ค.
ํ์ด์ ๊ฐ์๋ฅผ ๋ด์ ์์ฐ์ n, ์ดํผ์น๊ฐ ๋งํ ๊ณผ๋ ์ ์์ ๊ฐ์๋ฅผ 10์ ๋ถํฐ 0์ ๊น์ง ์์๋๋ก ๋ด์ ์ ์ ๋ฐฐ์ด info๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ์ด๋, ๋ผ์ด์ธ์ด ๊ฐ์ฅ ํฐ ์ ์ ์ฐจ์ด๋ก ์ฐ์นํ๊ธฐ ์ํด n๋ฐ์ ํ์ด์ ์ด๋ค ๊ณผ๋ ์ ์์ ๋งํ์ผ ํ๋์ง๋ฅผ 10์ ๋ถํฐ 0์ ๊น์ง ์์๋๋ก ์ ์ ๋ฐฐ์ด์ ๋ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์. ๋ง์ฝ, ๋ผ์ด์ธ์ด ์ฐ์นํ ์ ์๋ ๊ฒฝ์ฐ(๋ฌด์กฐ๊ฑด ์ง๊ฑฐ๋ ๋น๊ธฐ๋ ๊ฒฝ์ฐ)๋ [-1]์ return ํด์ฃผ์ธ์.
์ ํ ์ฌํญ
- 1 ≤ n ≤ 10
- info์ ๊ธธ์ด = 11
- 0 ≤ info์ ์์ ≤ n
- info์ ์์ ์ดํฉ = n
- info์ i๋ฒ์งธ ์์๋ ๊ณผ๋ ์ 10 - i ์ ์ ๋งํ ํ์ด ๊ฐ์์ ๋๋ค. ( i๋ 0~10 ์ฌ์ด์ ์ ์์ ๋๋ค.)
- ๋ผ์ด์ธ์ด ์ฐ์นํ ๋ฐฉ๋ฒ์ด ์๋ ๊ฒฝ์ฐ, return ํ ์ ์ ๋ฐฐ์ด์ ๊ธธ์ด๋ 11์
๋๋ค.
- 0 ≤ returnํ ์ ์ ๋ฐฐ์ด์ ์์ ≤ n
- returnํ ์ ์ ๋ฐฐ์ด์ ์์ ์ดํฉ = n (๊ผญ n๋ฐ์ ๋ค ์ด์ผ ํฉ๋๋ค.)
- returnํ ์ ์ ๋ฐฐ์ด์ i๋ฒ์งธ ์์๋ ๊ณผ๋ ์ 10 - i ์ ์ ๋งํ ํ์ด ๊ฐ์์ ๋๋ค. ( i๋ 0~10 ์ฌ์ด์ ์ ์์ ๋๋ค.)
- ๋ผ์ด์ธ์ด ๊ฐ์ฅ ํฐ ์ ์ ์ฐจ์ด๋ก ์ฐ์นํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์ฌ๋ฌ ๊ฐ์ง ์ผ ๊ฒฝ์ฐ, ๊ฐ์ฅ ๋ฎ์ ์ ์๋ฅผ ๋ ๋ง์ด ๋งํ ๊ฒฝ์ฐ๋ฅผ return ํด์ฃผ์ธ์.
- ๊ฐ์ฅ ๋ฎ์ ์ ์๋ฅผ ๋งํ ๊ฐ์๊ฐ ๊ฐ์ ๊ฒฝ์ฐ ๊ณ์ํด์ ๊ทธ๋ค์์ผ๋ก ๋ฎ์ ์ ์๋ฅผ ๋ ๋ง์ด ๋งํ ๊ฒฝ์ฐ๋ฅผ return ํด์ฃผ์ธ์.
- ์๋ฅผ ๋ค์ด, [2,3,1,0,0,0,0,1,3,0,0]๊ณผ [2,1,0,2,0,0,0,2,3,0,0]๋ฅผ ๋น๊ตํ๋ฉด [2,1,0,2,0,0,0,2,3,0,0]๋ฅผ return ํด์ผ ํฉ๋๋ค.
- ๋ค๋ฅธ ์๋ก, [0,0,2,3,4,1,0,0,0,0,0]๊ณผ [9,0,0,0,0,0,0,0,1,0,0]๋ฅผ ๋น๊ตํ๋ฉด[9,0,0,0,0,0,0,0,1,0,0]๋ฅผ return ํด์ผ ํฉ๋๋ค.
- ๋ผ์ด์ธ์ด ์ฐ์นํ ๋ฐฉ๋ฒ์ด ์๋ ๊ฒฝ์ฐ, return ํ ์ ์ ๋ฐฐ์ด์ ๊ธธ์ด๋ 1์
๋๋ค.
- ๋ผ์ด์ธ์ด ์ด๋ป๊ฒ ํ์ด์ ์๋ ๋ผ์ด์ธ์ ์ ์๊ฐ ์ดํผ์น์ ์ ์๋ณด๋ค ๋ฎ๊ฑฐ๋ ๊ฐ์ผ๋ฉด [-1]์ return ํด์ผ ํฉ๋๋ค.
- ์ ํ์๊ฐ ์๋ด
- ์ ํ์ฑ ํ ์คํธ : 10์ด
์ ์ถ๋ ฅ ์
n | info | result |
5 | [2,1,1,1,0,0,0,0,0,0,0] | [0,2,2,0,1,0,0,0,0,0,0] |
1 | [1,0,0,0,0,0,0,0,0,0,0] | [-1] |
9 | [0,0,1,2,0,1,1,1,1,1,1] | [1,1,2,0,1,2,2,0,0,0,0] |
10 | [0,0,0,0,0,0,0,0,3,4,3] | [1,1,1,1,1,1,1,1,0,0,2] |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
์ดํผ์น์ ๋ผ์ด์ธ์ด ์๋์ ๊ฐ์ด ํ์ด์ ๋งํ ๊ฒฝ์ฐ,
๊ณผ๋ ์ ์ | ์ดํผ์น๊ฐ ๋งํ ํ์ด ๊ฐ์ | ๋ผ์ด์ธ์ด ๋งํ ํ์ด ๊ฐ์ | ๊ฒฐ๊ณผ |
10 | 2 | 3 | ๋ผ์ด์ธ์ด 10์ ํ๋ |
9 | 1 | 2 | ๋ผ์ด์ธ์ด 9์ ํ๋ |
8 | 1 | 0 | ์ดํผ์น๊ฐ 8์ ํ๋ |
7 | 1 | 0 | ์ดํผ์น๊ฐ 7์ ํ๋ |
6 | 0 | 0 | |
5 | 0 | 0 | |
4 | 0 | 0 | |
3 | 0 | 0 | |
2 | 0 | 0 | |
1 | 0 | 0 | |
0 | 0 | 0 |
์ดํผ์น์ ์ต์ข ์ ์๋ 15์ , ๋ผ์ด์ธ์ ์ต์ข ์ ์๋ 19์ ์ ๋๋ค. 4์ ์ฐจ์ด๋ก ๋ผ์ด์ธ์ด ์ฐ์นํฉ๋๋ค.
ํ์ง๋ง, ๋ผ์ด์ธ์ด ์๋์ ๊ฐ์ด ํ์ด์ ๋งํ ๊ฒฝ์ฐ ๋ ํฐ ์ ์ ์ฐจ๋ก ์ฐ์นํ ์ ์์ต๋๋ค.
๊ณผ๋ ์ ์ | ์ดํผ์น๊ฐ ๋งํ ํ์ด ๊ฐ์ | ๋ผ์ด์ธ์ด ๋งํ ํ์ด ๊ฐ์ | ๊ฒฐ๊ณผ |
10 | 2 | 0 | ์ดํผ์น๊ฐ 10์ ํ๋ |
9 | 1 | 2 | ๋ผ์ด์ธ์ด 9์ ํ๋ |
8 | 1 | 2 | ๋ผ์ด์ธ์ด 8์ ํ๋ |
7 | 1 | 0 | ์ดํผ์น๊ฐ 7์ ํ๋ |
6 | 0 | 1 | ๋ผ์ด์ธ์ด 6์ ํ๋ |
5 | 0 | 0 | |
4 | 0 | 0 | |
3 | 0 | 0 | |
2 | 0 | 0 | |
1 | 0 | 0 | |
0 | 0 | 0 |
์ดํผ์น์ ์ต์ข ์ ์๋ 17์ , ๋ผ์ด์ธ์ ์ต์ข ์ ์๋ 23์ ์ ๋๋ค. 6์ ์ฐจ์ด๋ก ๋ผ์ด์ธ์ด ์ฐ์นํฉ๋๋ค.
๋ฐ๋ผ์ [0,2,2,0,1,0,0,0,0,0,0]์ return ํด์ผ ํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #2
๋ผ์ด์ธ์ด 10์ ์ ๋งํ๋ ์ดํผ์น๊ฐ 10์ ์ ๊ฐ์ ธ๊ฐ๊ฒ ๋ฉ๋๋ค.
๋ฐ๋ผ์, ๋ผ์ด์ธ์ ์ฐ์นํ ์ ์๊ธฐ ๋๋ฌธ์ [-1]์ return ํด์ผ ํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #3
์ดํผ์น์ ๋ผ์ด์ธ์ด ์๋์ ๊ฐ์ด ํ์ด์ ๋งํ ๊ฒฝ์ฐ,
๊ณผ๋ ์ ์ | ์ดํผ์น๊ฐ ๋งํ ํ์ด ๊ฐ์ | ๋ผ์ด์ธ์ด ๋งํ ํ์ด ๊ฐ์ | ๊ฒฐ๊ณผ |
10 | 0 | 1 | ๋ผ์ด์ธ์ด 10์ ํ๋ |
9 | 0 | 1 | ๋ผ์ด์ธ์ด 9์ ํ๋ |
8 | 1 | 2 | ๋ผ์ด์ธ์ด 8์ ํ๋ |
7 | 2 | 3 | ๋ผ์ด์ธ์ด 7์ ํ๋ |
6 | 0 | 0 | |
5 | 1 | 2 | ๋ผ์ด์ธ์ด 5์ ํ๋ |
4 | 1 | 0 | ์ดํผ์น๊ฐ 4์ ํ๋ |
3 | 1 | 0 | ์ดํผ์น๊ฐ 3์ ํ๋ |
2 | 1 | 0 | ์ดํผ์น๊ฐ 2์ ํ๋ |
1 | 1 | 0 | ์ดํผ์น๊ฐ 1์ ํ๋ |
0 | 1 | 0 | ์ดํผ์น๊ฐ 0์ ํ๋ |
์ดํผ์น์ ์ต์ข ์ ์๋ 10์ , ๋ผ์ด์ธ์ ์ต์ข ์ ์๋ 39์ ์ ๋๋ค. 29์ ์ฐจ์ด๋ก ๋ผ์ด์ธ์ด ์ฐ์นํฉ๋๋ค.
ํ์ง๋ง ๋ผ์ด์ธ์ด ์๋์ ๊ฐ์ด ํ์ด์ ๋งํ ๊ฒฝ์ฐ,
๊ณผ๋ ์ ์ | ์ดํผ์น๊ฐ ๋งํ ํ์ด ๊ฐ์ | ๋ผ์ด์ธ์ด ๋งํ ํ์ด ๊ฐ์ | ๊ฒฐ๊ณผ |
10 | 0 | 1 | ๋ผ์ด์ธ์ด 10์ ํ๋ |
9 | 0 | 1 | ๋ผ์ด์ธ์ด 9์ ํ๋ |
8 | 1 | 2 | ๋ผ์ด์ธ์ด 8์ ํ๋ |
7 | 2 | 0 | ์ดํผ์น๊ฐ 7์ ํ๋ |
6 | 0 | 1 | ๋ผ์ด์ธ์ด 6์ ํ๋ |
5 | 1 | 2 | ๋ผ์ด์ธ์ด 5์ ํ๋ |
4 | 1 | 2 | ๋ผ์ด์ธ์ด 4์ ํ๋ |
3 | 1 | 0 | ์ดํผ์น๊ฐ 3์ ํ๋ |
2 | 1 | 0 | ์ดํผ์น๊ฐ 2์ ํ๋ |
1 | 1 | 0 | ์ดํผ์น๊ฐ 1์ ํ๋ |
0 | 1 | 0 | ์ดํผ์น๊ฐ 0์ ํ๋ |
์ดํผ์น์ ์ต์ข
์ ์๋ 13์ , ๋ผ์ด์ธ์ ์ต์ข
์ ์๋ 42์ ์
๋๋ค. ์ด ๊ฒฝ์ฐ๋ 29์ ์ฐจ์ด๋ก ๋ผ์ด์ธ์ด ์ฐ์นํฉ๋๋ค.
ํ์ง๋ง, ์ฒซ ๋ฒ์งธ ๊ฒฝ์ฐ์ ๋ ๋ฒ์งธ ๊ฒฝ์ฐ๋ฅผ ๋น๊ตํ์ ๋, ๋ ๋ฒ์งธ ๊ฒฝ์ฐ๊ฐ ๋ ๊ฒฝ์ฐ ์ค ๊ฐ์ฅ ๋ฎ์ ์ ์์ธ 4์ ์ ๋ ๋ง์ด ๋งํ๊ธฐ ๋๋ฌธ์ [1,1,2,3,0,2,0,0,0,0,0]์ด ์๋ [1,1,2,0,1,2,2,0,0,0,0]์ return ํด์ผ ํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #4
๊ฐ์ฅ ํฐ ์ ์ ์ฐจ์ด๋ก ์ด๊ธฐ๋ ๊ฒฝ์ฐ ์ค์์ ๊ฐ์ฅ ๋ฎ์ ์ ์๋ฅผ ๊ฐ์ฅ ๋ง์ด ๋งํ, 10~3์ ์ ํ ๋ฐ์ฉ ๋งํ๊ณ ๋๋จธ์ง ๋ ๋ฐ์ 0์ ์ ๋งํ๋ ๊ฒฝ์ฐ์ธ [1,1,1,1,1,1,1,1,0,0,2]๋ฅผ return ํด์ผ ํฉ๋๋ค.
ํ์ด
- ๋ฌธ์ ๋ ๋๊ฒ ์ฌ์ด ๊ฑฐ ๊ฐ์๋ฐ, ์ฝ์ ์๋ก ์๋ฆฌ์ก ํ๋ค.
- ์ํ ๋ฌธ์ ์ธ๊ฐ?
- ์ดํผ์น๊ฐ ๋งํ ํ์ด ๊ฐ์๊ฐ 2๊ฐ ์ด์์ด๋ฉด 1๊ฐ ๋ญ๋นํ๊ฑฐ. ์๋? ๋ผ์ด์ธ์ ๊ฑฐ๊ธฐ ์ ์ ๊ฑฐ๊ฑฐ๋
- ์ฆ, ์ด์นํผ ์ด์ ์ ๋งํ ํ์ด์ด ์๋ ๊ณณ๋ง ์ดํผ์น ์ ์์.
- ์๋ฅผ ๋ค์ด 10์ ์ 10๋ฐ ๋ง์ท๋ค.
- ๊ทธ๋ฌ๋ฉด ๋ผ์ด์ธ์ 0์ ๋ถํฐ 9์ ๊น์ง 1๋ฐ์ฉ๋ง ์ด๋ 45์ ์ผ๋ก ์ต๊ณ ์ ๋จน์
- ์๋ฅผ ๋ค์ด 10์ ์ 10๋ฐ ๋ง์ท๋ค.
- ๋น์นธ์ ๋จผ์ ์๊ณ , ์ ์ ๊ฒ๋ถํฐ ๋นผ์์ผ๋ฉด ๋์ง ์๋?
- ์ฆ, ์ด์นํผ ์ด์ ์ ๋งํ ํ์ด์ด ์๋ ๊ณณ๋ง ์ดํผ์น ์ ์์.
- ์ดํผ์น๊ฐ 10x2, 9x2, 8x2, 7x2, 6x2 ์ด๋ ๊ฒ 10๋ฐ ์๋ค ์น๋ฉด = 40์
- 5,4,3,2,1์ ํ๋ฐ์ฉ ์๊ณ = 15์
- ๋๋จธ์ง 5๋ฐ๋ก, 10์ ์ 3๋ฐ ์๋ฉด... 10์ ํด์ 25์ . ์ดํผ์น๋ 30์ .
- ์? ์๋๊ตฌ๋ง
- 10์ 3๋ฐ, 9์ 3๋ฐ ์๋ฉด 19์ . ์ดํผ์น๋ 8+7+6 ์ (21์ )
- 2๋ฐ ๋จ์ ๊ฑธ๋ก, 5+4 = 9์ . ํ๋ฉด 19+9 = 28์
- ์ด๊ฑธ ์ด๋ป๊ฒ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋ง๋ค์ด...
- ์ดํผ์น๊ฐ 10x2, 9x2, 8x2, 7x2, 6x2 ์ด๋ ๊ฒ 10๋ฐ ์๋ค ์น๋ฉด = 40์
- ๋ผ์ด์ธ์ ๋น์ด์๋ ์นธ๋ถํฐ ์ฑ์ด๋ค. 5,4,3,2,1 ๊ทธ๋ฆฌ๊ณ 5๋ฐ ๋จ์ผ๋ฉด ์ด์ฐจํผ์ ์ ์ผ ๋์ ์ ์๋ถํฐ ๊น๋ค.
- ์ดํผ์น : 9x2, 8x2, 7x2, 6x2 = 30์
- ๋ผ์ด์ธ : 10x3, 5,4,3,2,1 = 25์ . ๋จ์ ํ์ด 2๊ฐ
- 1์ ์ ์๋ ํ์ด 1๊ฐ ๋ฝ์์ 9์ ์ 3๋ฐ ์๋ฉด...
- ์ดํผ์น : 8x2, 7x2, 6x2 = 21์
- ๋ผ์ด์ธ : 10x3, 9x3, 5,4,3,2 = 34์ . ๋จ์ ํ์ด 0๊ฐ. ์ ์์ฐจ 13์
- ๋ฎ์ ์ ์ ํ์ด 4๊ฐ ๋ ๋ฝ์์, 7์ด๋ 6 ๋ฌด๋ ฅํ ์ํค๋ฉด
- ์ดํผ์น 0์ .
- ๋ผ์ด์ธ 10x3, 9x3 = 19์ . ์ ์์ฐจ 19์
- ๋ฎ์ ์ ์ ํ์ด 4๊ฐ ๋ ๋ฝ์์, 7์ด๋ 6 ๋ฌด๋ ฅํ ์ํค๋ฉด
- 1์ ์ ์๋ ํ์ด 1๊ฐ ๋ฝ์์ 9์ ์ 3๋ฐ ์๋ฉด...
- ์๋ฌด๋ฆฌ ํด๋ ๋จธ๋ฆฌ๊ฐ ์๋์๊ฐ๋๋ฐ... ์ฌ๊ธฐ ์๊ณ ๋ฆฌ์ฆ ์๋๊ฑฐ ์๋๊น?
- ๊ทธ๋ฅ ๋๋ค์ผ๋ก ํด๋ณด๊ฑฐ๋ ์ ๋ถ ๋ค ํด๋ณด๋ ๋ฐฉ๋ฒ ๋ฐ์ ์๋๊ฑด๊ฐ...;;;
- ์ด์ฐจํผ ํ์ด n์ 1~10์ด๊ณ . ์ ์ํ info์ ๊ธธ์ด๋ 11.
- ์๋๋ฐ ๊ทธ๋ผ ์ด์ฐจํผ ์ ์๋ ์ ์คฌ๊ฒ ์ด?
- ๋ญ๊ฐ ์๊ฒ์ง???
- ํํํ...
- ๊ทธ๋ฅ ๋๋ค์ผ๋ก ํด๋ณด๊ฑฐ๋ ์ ๋ถ ๋ค ํด๋ณด๋ ๋ฐฉ๋ฒ ๋ฐ์ ์๋๊ฑด๊ฐ...;;;
#์์ฐ ๋ชฐ?๋ฃจ...
def solution(n, info):
infolen = 11
ryan = [0 for _ in range(infolen)]
def compare_sum():
sum_info, sum_ryan = 0, 0
for i in range(infolen):
if info[i] > ryan[i]:
sum_info += i
elif info[i] < ryan[i]:
sum_ryan += i
return (sum_info, sum_ryan)
while n > 0:
for i in range(infolen):
if info[i]+1 > ryan[i] and n>0:
ryan[i] += 1
n -= 1
sum_info, sum_ryan = compare_sum()
print("์ดํผ์น:", info, "=", sum_info)
print("๋ผ์ด์ธ:", ryan, "=", sum_ryan, "(๋จ์ ํ์ด:",n,")")
return ryan
ํ
์คํธ 1
์
๋ ฅ๊ฐ ใ 5, [2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0]
๊ธฐ๋๊ฐ ใ [0, 2, 2, 0, 1, 0, 0, 0, 0, 0, 0]
์คํ ๊ฒฐ๊ณผ ใ ์คํํ ๊ฒฐ๊ด๊ฐ [1,1,1,1,1,0,0,0,0,0,0]์ด ๊ธฐ๋๊ฐ [0,2,2,0,1,0,0,0,0,0,0]๊ณผ ๋ค๋ฆ
๋๋ค.
์ถ๋ ฅ ใ
์ดํผ์น: [2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0] = 6
๋ผ์ด์ธ: [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] = 0 (๋จ์ ํ์ด: 4 )
์ดํผ์น: [2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0] = 5
๋ผ์ด์ธ: [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0] = 0 (๋จ์ ํ์ด: 3 )
์ดํผ์น: [2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0] = 3
๋ผ์ด์ธ: [1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0] = 0 (๋จ์ ํ์ด: 2 )
์ดํผ์น: [2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0] = 0
๋ผ์ด์ธ: [1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0] = 0 (๋จ์ ํ์ด: 1 )
์ดํผ์น: [2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0] = 0
๋ผ์ด์ธ: [1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0] = 4 (๋จ์ ํ์ด: 0 )
์ดํผ์น: [2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0] = 0
๋ผ์ด์ธ: [1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0] = 4 (๋จ์ ํ์ด: 0 )
์ดํผ์น: [2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0] = 0
๋ผ์ด์ธ: [1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0] = 4 (๋จ์ ํ์ด: 0 )
์ดํผ์น: [2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0] = 0
๋ผ์ด์ธ: [1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0] = 4 (๋จ์ ํ์ด: 0 )
์ดํผ์น: [2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0] = 0
๋ผ์ด์ธ: [1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0] = 4 (๋จ์ ํ์ด: 0 )
์ดํผ์น: [2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0] = 0
๋ผ์ด์ธ: [1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0] = 4 (๋จ์ ํ์ด: 0 )
์ดํผ์น: [2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0] = 0
๋ผ์ด์ธ: [1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0] = 4 (๋จ์ ํ์ด: 0 )
ํ
์คํธ 2
์
๋ ฅ๊ฐ ใ 1, [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
๊ธฐ๋๊ฐ ใ [-1]
์คํ ๊ฒฐ๊ณผ ใ ์คํํ ๊ฒฐ๊ด๊ฐ [1,0,0,0,0,0,0,0,0,0,0]์ด ๊ธฐ๋๊ฐ [-1]๊ณผ ๋ค๋ฆ
๋๋ค.
์ถ๋ ฅ ใ
์ดํผ์น: [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] = 0
๋ผ์ด์ธ: [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] = 0 (๋จ์ ํ์ด: 0 )
์ดํผ์น: [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] = 0
๋ผ์ด์ธ: [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] = 0 (๋จ์ ํ์ด: 0 )
์ดํผ์น: [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] = 0
๋ผ์ด์ธ: [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] = 0 (๋จ์ ํ์ด: 0 )
์ดํผ์น: [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] = 0
๋ผ์ด์ธ: [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] = 0 (๋จ์ ํ์ด: 0 )
์ดํผ์น: [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] = 0
๋ผ์ด์ธ: [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] = 0 (๋จ์ ํ์ด: 0 )
์ดํผ์น: [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] = 0
๋ผ์ด์ธ: [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] = 0 (๋จ์ ํ์ด: 0 )
์ดํผ์น: [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] = 0
๋ผ์ด์ธ: [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] = 0 (๋จ์ ํ์ด: 0 )
์ดํผ์น: [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] = 0
๋ผ์ด์ธ: [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] = 0 (๋จ์ ํ์ด: 0 )
์ดํผ์น: [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] = 0
๋ผ์ด์ธ: [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] = 0 (๋จ์ ํ์ด: 0 )
์ดํผ์น: [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] = 0
๋ผ์ด์ธ: [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] = 0 (๋จ์ ํ์ด: 0 )
์ดํผ์น: [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] = 0
๋ผ์ด์ธ: [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] = 0 (๋จ์ ํ์ด: 0 )
ํ
์คํธ 3
์
๋ ฅ๊ฐ ใ 9, [0, 0, 1, 2, 0, 1, 1, 1, 1, 1, 1]
๊ธฐ๋๊ฐ ใ [1, 1, 2, 0, 1, 2, 2, 0, 0, 0, 0]
์คํ ๊ฒฐ๊ณผ ใ ์คํํ ๊ฒฐ๊ด๊ฐ [1,1,1,1,1,1,1,1,1,0,0]์ด ๊ธฐ๋๊ฐ [1,1,2,0,1,2,2,0,0,0,0]๊ณผ ๋ค๋ฆ
๋๋ค.
์ถ๋ ฅ ใ
์ดํผ์น: [0, 0, 1, 2, 0, 1, 1, 1, 1, 1, 1] = 50
๋ผ์ด์ธ: [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] = 0 (๋จ์ ํ์ด: 8 )
์ดํผ์น: [0, 0, 1, 2, 0, 1, 1, 1, 1, 1, 1] = 50
๋ผ์ด์ธ: [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0] = 1 (๋จ์ ํ์ด: 7 )
์ดํผ์น: [0, 0, 1, 2, 0, 1, 1, 1, 1, 1, 1] = 48
๋ผ์ด์ธ: [1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0] = 1 (๋จ์ ํ์ด: 6 )
์ดํผ์น: [0, 0, 1, 2, 0, 1, 1, 1, 1, 1, 1] = 48
๋ผ์ด์ธ: [1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0] = 1 (๋จ์ ํ์ด: 5 )
์ดํผ์น: [0, 0, 1, 2, 0, 1, 1, 1, 1, 1, 1] = 48
๋ผ์ด์ธ: [1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0] = 5 (๋จ์ ํ์ด: 4 )
์ดํผ์น: [0, 0, 1, 2, 0, 1, 1, 1, 1, 1, 1] = 43
๋ผ์ด์ธ: [1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0] = 5 (๋จ์ ํ์ด: 3 )
์ดํผ์น: [0, 0, 1, 2, 0, 1, 1, 1, 1, 1, 1] = 37
๋ผ์ด์ธ: [1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0] = 5 (๋จ์ ํ์ด: 2 )
์ดํผ์น: [0, 0, 1, 2, 0, 1, 1, 1, 1, 1, 1] = 30
๋ผ์ด์ธ: [1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0] = 5 (๋จ์ ํ์ด: 1 )
์ดํผ์น: [0, 0, 1, 2, 0, 1, 1, 1, 1, 1, 1] = 22
๋ผ์ด์ธ: [1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0] = 5 (๋จ์ ํ์ด: 0 )
์ดํผ์น: [0, 0, 1, 2, 0, 1, 1, 1, 1, 1, 1] = 22
๋ผ์ด์ธ: [1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0] = 5 (๋จ์ ํ์ด: 0 )
์ดํผ์น: [0, 0, 1, 2, 0, 1, 1, 1, 1, 1, 1] = 22
๋ผ์ด์ธ: [1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0] = 5 (๋จ์ ํ์ด: 0 )
ํ
์คํธ 4
์
๋ ฅ๊ฐ ใ 10, [0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 3]
๊ธฐ๋๊ฐ ใ [1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 2]
์คํ ๊ฒฐ๊ณผ ใ ์คํํ ๊ฒฐ๊ด๊ฐ [1,1,1,1,1,1,1,1,1,1,0]์ด ๊ธฐ๋๊ฐ [1,1,1,1,1,1,1,1,0,0,2]๊ณผ ๋ค๋ฆ
๋๋ค.
์ถ๋ ฅ ใ
์ดํผ์น: [0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 3] = 27
๋ผ์ด์ธ: [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] = 0 (๋จ์ ํ์ด: 9 )
์ดํผ์น: [0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 3] = 27
๋ผ์ด์ธ: [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0] = 1 (๋จ์ ํ์ด: 8 )
์ดํผ์น: [0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 3] = 27
๋ผ์ด์ธ: [1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0] = 3 (๋จ์ ํ์ด: 7 )
์ดํผ์น: [0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 3] = 27
๋ผ์ด์ธ: [1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0] = 6 (๋จ์ ํ์ด: 6 )
์ดํผ์น: [0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 3] = 27
๋ผ์ด์ธ: [1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0] = 10 (๋จ์ ํ์ด: 5 )
์ดํผ์น: [0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 3] = 27
๋ผ์ด์ธ: [1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0] = 15 (๋จ์ ํ์ด: 4 )
์ดํผ์น: [0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 3] = 27
๋ผ์ด์ธ: [1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0] = 21 (๋จ์ ํ์ด: 3 )
์ดํผ์น: [0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 3] = 27
๋ผ์ด์ธ: [1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0] = 28 (๋จ์ ํ์ด: 2 )
์ดํผ์น: [0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 3] = 27
๋ผ์ด์ธ: [1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0] = 28 (๋จ์ ํ์ด: 1 )
์ดํผ์น: [0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 3] = 27
๋ผ์ด์ธ: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0] = 28 (๋จ์ ํ์ด: 0 )
์ดํผ์น: [0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 3] = 27
๋ผ์ด์ธ: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0] = 28 (๋จ์ ํ์ด: 0 )
- ์๊ฐํด๋ณด๋๊น... ์ดํผ์น์ ์ ์๋ฅผ ๋นผ์์ผ๋ ค๋ฉด ํ์ด ๊ฐฏ์๋งํผ ๋๋๊ณ 1์ ๋ํด์ผ ๋๋ค...
- ๊ทธ๋ฆฌ๊ณ ์ดํผ์น๊ฐ ํ์ด ์ ์ ๊ณณ์ ์ ์ ๊ทธ๋๋ก๊ณ ...?
def solution(n, info):
infolen = 11
ryan = [0 for _ in range(infolen)]
effc = []
# info๋ ๊ณผ๋
์ ๊ฝํ ํ์ด ์
# ryan์ ๊ณผ๋
์ ๊ฝ์ ํ์ด์ ๋ง์ถ๋...
# effc์ ํจ์จ ๊ณ์ฐ
def compare_sum(): # ์ ์ ๋น๊ต์ฉ
sum_info, sum_ryan = 0, 0
for i in range(infolen):
if info[i] > ryan[i]:
sum_info += i
elif info[i] < ryan[i]:
sum_ryan += i
return (sum_info, sum_ryan)
def calc_effecient(): # ํจ์จ ๊ณ์ฐ
eff2 = []
point = 10
for i in range(infolen):
eff2.append(point / (info[i]+1))
if info[i] != 0:
eff2[i] *= 2
point -= 1
return eff2
effc = calc_effecient()
sum_info, sum_ryan = compare_sum()
print("์ดํผ์น:", info, "=", sum_info)
print("ํจ__์จ:", effc,)
print("๋ผ์ด์ธ:", ryan, "=", sum_ryan, "(๋จ์ ํ์ด:",n,")")
while n > 0:
for i in range(infolen):
if info[i]+1 > ryan[i] and n>0:
ryan[i] += 1
n -= 1
sum_info, sum_ryan = compare_sum()
return ryan
ํ
์คํธ 1
์
๋ ฅ๊ฐ ใ 5, [2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0]
๊ธฐ๋๊ฐ ใ [0, 2, 2, 0, 1, 0, 0, 0, 0, 0, 0]
์คํ ๊ฒฐ๊ณผ ใ ์คํํ ๊ฒฐ๊ด๊ฐ [1,1,1,1,1,0,0,0,0,0,0]์ด ๊ธฐ๋๊ฐ [0,2,2,0,1,0,0,0,0,0,0]๊ณผ ๋ค๋ฆ
๋๋ค.
์ถ๋ ฅ ใ
์ดํผ์น: [2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0] = 6
ํจ__์จ: [6.666666666666667, 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0, 0.0]
๋ผ์ด์ธ: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] = 0 (๋จ์ ํ์ด: 5 )
ํ
์คํธ 2
์
๋ ฅ๊ฐ ใ 1, [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
๊ธฐ๋๊ฐ ใ [-1]
์คํ ๊ฒฐ๊ณผ ใ ์คํํ ๊ฒฐ๊ด๊ฐ [1,0,0,0,0,0,0,0,0,0,0]์ด ๊ธฐ๋๊ฐ [-1]๊ณผ ๋ค๋ฆ
๋๋ค.
์ถ๋ ฅ ใ
์ดํผ์น: [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] = 0
ํจ__์จ: [10.0, 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0, 0.0]
๋ผ์ด์ธ: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] = 0 (๋จ์ ํ์ด: 1 )
ํ
์คํธ 3
์
๋ ฅ๊ฐ ใ 9, [0, 0, 1, 2, 0, 1, 1, 1, 1, 1, 1]
๊ธฐ๋๊ฐ ใ [1, 1, 2, 0, 1, 2, 2, 0, 0, 0, 0]
์คํ ๊ฒฐ๊ณผ ใ ์คํํ ๊ฒฐ๊ด๊ฐ [1,1,1,1,1,1,1,1,1,0,0]์ด ๊ธฐ๋๊ฐ [1,1,2,0,1,2,2,0,0,0,0]๊ณผ ๋ค๋ฆ
๋๋ค.
์ถ๋ ฅ ใ
์ดํผ์น: [0, 0, 1, 2, 0, 1, 1, 1, 1, 1, 1] = 50
ํจ__์จ: [10.0, 9.0, 8.0, 4.666666666666667, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0, 0.0]
๋ผ์ด์ธ: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] = 0 (๋จ์ ํ์ด: 9 )
ํ
์คํธ 4
์
๋ ฅ๊ฐ ใ 10, [0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 3]
๊ธฐ๋๊ฐ ใ [1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 2]
์คํ ๊ฒฐ๊ณผ ใ ์คํํ ๊ฒฐ๊ด๊ฐ [1,1,1,1,1,1,1,1,1,1,0]์ด ๊ธฐ๋๊ฐ [1,1,1,1,1,1,1,1,0,0,2]๊ณผ ๋ค๋ฆ
๋๋ค.
์ถ๋ ฅ ใ
์ดํผ์น: [0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 3] = 27
ํจ__์จ: [10.0, 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 1.0, 0.4, 0.0]
๋ผ์ด์ธ: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] = 0 (๋จ์ ํ์ด: 10 )
- ํจ์จ์ด ๋์ ์์ผ๋ก ์ ์๋ฅผ ๋นผ์์ผ๋ฉด ๋๊ณ ,
- ์ ์๊ฐ ๋ ๋์์ง์ง ์์ผ๋ฉด ํ์ด์ 0์ ์๋ ๊ณณ ๊น์ง ๋ณด๋ด์ ๋ฎ์ ์ ์๋ฅผ ๋ง์ด ๋งํ๋๋ก ํ๋ฉด ๋๋ค. ๋๋?
- ํจ์จ๋ก๋ ์ด๋ ค์.
- ์ ์๊ฐ ๋ ๋์์ง์ง ์์ผ๋ฉด ํ์ด์ 0์ ์๋ ๊ณณ ๊น์ง ๋ณด๋ด์ ๋ฎ์ ์ ์๋ฅผ ๋ง์ด ๋งํ๋๋ก ํ๋ฉด ๋๋ค. ๋๋?
- ๊ทธ๋์... re:zero๋ก๋ถํฐ ๋ค์ ์์ํ๋ ใ
ใ
ใ
- ์๋ฒ ์์ด๋์ด๋ 11์นธ์ ํ์ด n๊ฐ ๋ฐ์๋ฃ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์ ๋ถ ๋ง๋ค์ด์ ์ ์ ๋น๊ตํด๋ฒ๋ฆฌ๋ ๊ฑฐ...
- ๋ญ... ์ผ๋ง ์๊ฑธ๋ฆฌ๊ฒ ์ง?
- ์๋ฒ ์์ด๋์ด๋ 11์นธ์ ํ์ด n๊ฐ ๋ฐ์๋ฃ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์ ๋ถ ๋ง๋ค์ด์ ์ ์ ๋น๊ตํด๋ฒ๋ฆฌ๋ ๊ฑฐ...
def solution(n, info):
#n : ํ์ด ์. 1~10 ์ฌ์ด. ๋ฐ์๊ฐ 10๊ฐ ๋ฐ์ ์๋จ
#info :๊ณผ๋
์_์ ์์นธ 11 ๊ณ ์ .
๋ผ์ด์ธ์_๊ณผ๋
= [0 for _ in range(len(info))]
return ๋ผ์ด์ธ์_๊ณผ๋
- k๊ฐ์ ์์์ n๊ฐ์ ๊ตฌ์ฌ์ ๋ช๊ฐ์ฉ ๋ฃ๋.. ๊ฒฝ์ฐ์ ์๋ ์ด๋ป๊ฒ ๊ตฌํ๋๋ผ?
- ์์ ๊ตฌ๋ถx, ๋น ์์ ํ์ฉ
- ๊ณผ๋ ์ ์์นธ(k) = 11, ๋น ์์ ํ์ฉ
- ํ์ด(n) = 5 (1~10)
- ๊ฒฝ์ฐ์ ์ P(n,i), i๋ 1~k = P(n,1) + P(n,2) + P(n,3) + ... P(n,k)
- ๊ฐ ์๋๋ค.
- ๊ฒฝ์ฐ์ ์ P(n,i), i๋ 1~k = P(n,1) + P(n,2) + P(n,3) + ... P(n,k)
- ์์ ๊ตฌ๋ถo, ๋น ์์ ํ์ฉ
- kHn (์ค๋ณต ์กฐํฉ) 11H5
- ์์ ๊ตฌ๋ถx, ๋น ์์ ํ์ฉ
- ๊ทธ๋ฆฌ๊ณ ์ค๋ณต์กฐํฉ์ itertools
- ๋งค๋ฒ ๊ฒ์ํ์ง ๋ง๊ณ , ๋๋ ๋ธ๋ก๊ทธ์ ์ ๋ฆฌํด๋์ผ์ง
- ์ค๋ณต์กฐํฉ ๊ธฐ๋ณธ ๊ตฌ์กฐ
- ๊ทผ๋ฐ ์๊ฐ์ด๊ณผ ๋ ๊ฒ ๊ฐ์ ๋๋์ด๋ค.
from itertools import combinations_with_replacement
def solution(n, info):
#n : ํ์ด ์. 1~10 ์ฌ์ด. ๋ฐ์๊ฐ 10๊ฐ ๋ฐ์ ์๋จ
#info :๊ณผ๋
์_์ ์์นธ 11 ๊ณ ์ .
๋ผ์ด์ธ์_๊ณผ๋
= [i for i in range(len(info))]
comb = combinations_with_replacement(๋ผ์ด์ธ์_๊ณผ๋
, n)
i = 0
for c in comb:
print(c)
i += 1
if i > 5:
break
return ๋ผ์ด์ธ์_๊ณผ๋
์คํ ๊ฒฐ๊ณผ
ํ
์คํธ 1
์
๋ ฅ๊ฐ ใ 5, [2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0]
๊ธฐ๋๊ฐ ใ [0, 2, 2, 0, 1, 0, 0, 0, 0, 0, 0]
์คํ ๊ฒฐ๊ณผ ใ ์คํํ ๊ฒฐ๊ด๊ฐ [0,1,2,3,4,5,6,7,8,9,10]์ด ๊ธฐ๋๊ฐ [0,2,2,0,1,0,0,0,0,0,0]๊ณผ ๋ค๋ฆ
๋๋ค.
์ถ๋ ฅ ใ (0, 0, 0, 0, 0)
(0, 0, 0, 0, 1)
(0, 0, 0, 0, 2)
(0, 0, 0, 0, 3)
(0, 0, 0, 0, 4)
(0, 0, 0, 0, 5)
ํ
์คํธ 2
์
๋ ฅ๊ฐ ใ 1, [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
๊ธฐ๋๊ฐ ใ [-1]
์คํ ๊ฒฐ๊ณผ ใ ์คํํ ๊ฒฐ๊ด๊ฐ [0,1,2,3,4,5,6,7,8,9,10]์ด ๊ธฐ๋๊ฐ [-1]๊ณผ ๋ค๋ฆ
๋๋ค.
์ถ๋ ฅ ใ (0,)
(1,)
(2,)
(3,)
(4,)
(5,)
ํ
์คํธ 3
์
๋ ฅ๊ฐ ใ 9, [0, 0, 1, 2, 0, 1, 1, 1, 1, 1, 1]
๊ธฐ๋๊ฐ ใ [1, 1, 2, 0, 1, 2, 2, 0, 0, 0, 0]
์คํ ๊ฒฐ๊ณผ ใ ์คํํ ๊ฒฐ๊ด๊ฐ [0,1,2,3,4,5,6,7,8,9,10]์ด ๊ธฐ๋๊ฐ [1,1,2,0,1,2,2,0,0,0,0]๊ณผ ๋ค๋ฆ
๋๋ค.
์ถ๋ ฅ ใ (0, 0, 0, 0, 0, 0, 0, 0, 0)
(0, 0, 0, 0, 0, 0, 0, 0, 1)
(0, 0, 0, 0, 0, 0, 0, 0, 2)
(0, 0, 0, 0, 0, 0, 0, 0, 3)
(0, 0, 0, 0, 0, 0, 0, 0, 4)
(0, 0, 0, 0, 0, 0, 0, 0, 5)
ํ
์คํธ 4
์
๋ ฅ๊ฐ ใ 10, [0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 3]
๊ธฐ๋๊ฐ ใ [1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 2]
์คํ ๊ฒฐ๊ณผ ใ ์คํํ ๊ฒฐ๊ด๊ฐ [0,1,2,3,4,5,6,7,8,9,10]์ด ๊ธฐ๋๊ฐ [1,1,1,1,1,1,1,1,0,0,2]๊ณผ ๋ค๋ฆ
๋๋ค.
์ถ๋ ฅ ใ (0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
(0, 0, 0, 0, 0, 0, 0, 0, 0, 1)
(0, 0, 0, 0, 0, 0, 0, 0, 0, 2)
(0, 0, 0, 0, 0, 0, 0, 0, 0, 3)
(0, 0, 0, 0, 0, 0, 0, 0, 0, 4)
(0, 0, 0, 0, 0, 0, 0, 0, 0, 5)
- ํน์ ๋ชฐ๋ผ์ ์ฑ์ ๋๋ ค๋ดค๋๋ฐ... ๊ด์ฐฎ์ ๊ฑธ๊น?
์ ํ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ์คํจ (0.00ms, 10.3MB)
ํ
์คํธ 2 ใ ์คํจ (0.00ms, 10.3MB)
ํ
์คํธ 3 ใ ์คํจ (0.00ms, 10.4MB)
ํ
์คํธ 4 ใ ์คํจ (0.01ms, 10.4MB)
ํ
์คํธ 5 ใ ์คํจ (0.00ms, 10.4MB)
ํ
์คํธ 6 ใ ์คํจ (0.00ms, 10.4MB)
ํ
์คํธ 7 ใ ์คํจ (0.00ms, 10.4MB)
ํ
์คํธ 8 ใ ์คํจ (0.00ms, 10.4MB)
ํ
์คํธ 9 ใ ์คํจ (0.00ms, 10.4MB)
ํ
์คํธ 10 ใ ์คํจ (0.00ms, 10.3MB)
ํ
์คํธ 11 ใ ์คํจ (0.00ms, 10.3MB)
ํ
์คํธ 12 ใ ์คํจ (0.00ms, 10.4MB)
ํ
์คํธ 13 ใ ์คํจ (0.00ms, 10.5MB)
ํ
์คํธ 14 ใ ์คํจ (0.00ms, 10.3MB)
ํ
์คํธ 15 ใ ์คํจ (0.00ms, 10.5MB)
ํ
์คํธ 16 ใ ์คํจ (0.00ms, 10.4MB)
ํ
์คํธ 17 ใ ์คํจ (0.01ms, 10.3MB)
ํ
์คํธ 18 ใ ์คํจ (0.00ms, 10.4MB)
ํ
์คํธ 19 ใ ์คํจ (0.00ms, 10.3MB)
ํ
์คํธ 20 ใ ์คํจ (0.00ms, 10.3MB)
ํ
์คํธ 21 ใ ์คํจ (0.00ms, 10.3MB)
ํ
์คํธ 22 ใ ์คํจ (0.00ms, 10.4MB)
ํ
์คํธ 23 ใ ์คํจ (0.00ms, 10.4MB)
ํ
์คํธ 24 ใ ์คํจ (0.00ms, 10.3MB)
ํ
์คํธ 25 ใ ์คํจ (0.00ms, 10.3MB)
- ์ฝ๋ฉ ํ๋ค๋ณด๋๊น ์ค๋ณต ์กฐํฉ ์ ๋ชป ๋ง๋ค์๋ค ใ
ใ
ใ
- ์ด๋ ๊ฒ ๋ง๋ค์ด์ผ ํ๋ค.
- ๋ผ์ด์ธ์_๊ณผ๋ = [i for i in range(n+1)]
- comb = combinations_with_replacement(๋ผ์ด์ธ์_๊ณผ๋ , 11)
- ์๋ answer=[]๋ฅผ ์ด๋ฆ๋ฐ๊พผ๊ฑฐ๋ผ์ ์ ์ ์กฐํฉ์ธ๋ฐ ๊ณผ๋ ์นธ์ผ๋ก ์๊ฐํ๋ค.
- ๊ทผ๋ฐ ๊ทธ๊ฑฐ ์๋๋๋ผ๋ ๋ฉ์ฒญ์ด์ธ๊ฒ...
- 0~5๊น์ง ์ซ์๋ฅผ ๋ฃ๋๊ฒ ์ค์ํ๊ฒ ์๋๋ผ....
- ์ ํฉ์ด 5๋์ด๊ฐ๋ฉด ์ ๊ฑฐํด๋ฒ๋ฆฌ๋ฉด ๋๋๊ตฌ๋?
- 0~5๊น์ง ์ซ์๋ฅผ ๋ฃ๋๊ฒ ์ค์ํ๊ฒ ์๋๋ผ....
- ์ด๋ ๊ฒ ๋ง๋ค์ด์ผ ํ๋ค.
from itertools import combinations_with_replacement
def solution(n, info):
#n : ํ์ด ์. 1~10 ์ฌ์ด. ๋ฐ์๊ฐ 10๊ฐ ๋ฐ์ ์๋จ
#info :๊ณผ๋
์_์ ์์นธ 11 ๊ณ ์ .
๋ผ์ด์ธ์_๊ณผ๋
= [i for i in range(n+1)]
comb = combinations_with_replacement(๋ผ์ด์ธ์_๊ณผ๋
, 11)
#์ ์๋น๊ต. ์ค๋ณต ์กฐํฉ์์ ํ๋์ฉ ๊บผ๋ด์ ์ ์๋ฅผ ๋จผ์ ๊ณ์ฐํ๋ค.
๋ผ์ด์ธ_์ต๋์ ์ = 0
๋ผ์ด์ธ_๊ณผ๋
๋ฐฐ์ด = [0 for i in range(11)]
for c in comb:
๋ผ์ด์ธ์ ์ = 0
์ดํผ์น์ ์ = 0
for i in range(len(info)):
if info[i] > c[i]:
์ดํผ์น์ ์ += 10-i
elif info[i] < c[i]:
๋ผ์ด์ธ์ ์ += 10-i
if ๋ผ์ด์ธ_์ต๋์ ์ < ๋ผ์ด์ธ์ ์ - ์ดํผ์น์ ์:
๋ผ์ด์ธ_์ต๋์ ์ = ๋ผ์ด์ธ์ ์ - ์ดํผ์น์ ์
๋ผ์ด์ธ_๊ณผ๋
๋ฐฐ์ด.clear()
๋ผ์ด์ธ_๊ณผ๋
๋ฐฐ์ด = list(c)
return ๋ผ์ด์ธ_๊ณผ๋
๋ฐฐ์ด
ํ
์คํธ 1
์
๋ ฅ๊ฐ ใ 5, [2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0]
๊ธฐ๋๊ฐ ใ [0, 2, 2, 0, 1, 0, 0, 0, 0, 0, 0]
์คํ ๊ฒฐ๊ณผ ใ ์คํํ ๊ฒฐ๊ด๊ฐ [3,3,3,3,3,3,3,3,3,3,3]์ด ๊ธฐ๋๊ฐ [0,2,2,0,1,0,0,0,0,0,0]๊ณผ ๋ค๋ฆ
๋๋ค.
ํ
์คํธ 2
์
๋ ฅ๊ฐ ใ 1, [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
๊ธฐ๋๊ฐ ใ [-1]
์คํ ๊ฒฐ๊ณผ ใ ์คํํ ๊ฒฐ๊ด๊ฐ [1,1,1,1,1,1,1,1,1,1,1]์ด ๊ธฐ๋๊ฐ [-1]๊ณผ ๋ค๋ฆ
๋๋ค.
ํ
์คํธ 3
์
๋ ฅ๊ฐ ใ 9, [0, 0, 1, 2, 0, 1, 1, 1, 1, 1, 1]
๊ธฐ๋๊ฐ ใ [1, 1, 2, 0, 1, 2, 2, 0, 0, 0, 0]
์คํ ๊ฒฐ๊ณผ ใ ์คํํ ๊ฒฐ๊ด๊ฐ [1,1,2,3,3,3,3,3,3,3,3]์ด ๊ธฐ๋๊ฐ [1,1,2,0,1,2,2,0,0,0,0]๊ณผ ๋ค๋ฆ
๋๋ค.
ํ
์คํธ 4
์
๋ ฅ๊ฐ ใ 10, [0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 3]
๊ธฐ๋๊ฐ ใ [1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 2]
์คํ ๊ฒฐ๊ณผ ใ ์คํํ ๊ฒฐ๊ด๊ฐ [1,1,1,1,1,1,1,1,4,5,5]์ด ๊ธฐ๋๊ฐ [1,1,1,1,1,1,1,1,0,0,2]๊ณผ ๋ค๋ฆ
๋๋ค.
- ์ค๋ณต ์กฐํฉ์ ์ง์ ๋ง๋ค๊น ํ๋ค๊ฐ... ํ์ด์ฌ ๋ชจ๋ ๋ณด๋ค ๋น ๋ฅผ๋ฆฌ ์๋ค๋ฉฐ ํฌ๊ธฐ
- ๊ทธ๋ฅ for๋ฌธ ๋๋ ค ใ ใ ใ
- ์ด๋ฌ๋ฉด ๋๊ฒ ์ง?
- ์ ๋๋ค
- ๋ค์ ์๋จ.
- ๊ฒ์ํด๋ณด๋๊น...
- ๋ฆฌ์คํธ ๊ธธ์ด๊ฐ ๊ธธ์ด์ ๋ฉ์ถฐ๋ฒ๋ฆฌ๋ ๊ฒ ๊ฐ๋ค.
- 999,999,999 ํ๋ฉด ๋ฉ๋ชจ๋ฆฌ์๋ฌ
- ์ฒ๋ง๋ถํฐ ๋๋ ค์ง๊ณ
- 2์ต๊น์ง ๊ฐ๋ฅ
- 3์ต๋ถํฐ ๋ฉ๋ชจ๋ฆฌ์๋ฌ
- ๋ฐฑ๋ง๊น์ง ์ค๋ฌด์คํ๊ฒ ๋น ๋ฅด๊ฒ ์์ฑ ๊ฐ๋ฅ
- 100,000,000 (์ผ์ต)์ด 381 MB ํฌ๊ธฐ
- ๋ฆฌ์คํธ ๊ธธ์ด๊ฐ ๊ธธ์ด์ ๋ฉ์ถฐ๋ฒ๋ฆฌ๋ ๊ฒ ๊ฐ๋ค.
- ์ญ์ ์ง์ ๋ง๋ค์ด์ผ...?
- ์๋์ผ ์ง์ ๋ง๋ค ํ์์๊ณ ,
- combinations_with_replacement ํ๋ฒ ํ๊ณ , permutation ํ๋ฒ ํ๊ณ ๊ฒฐ๊ณผ ๊ฐ์ ๊ฑด ๊ฑธ๋ฌ๋ด๋ฉด ๋๋๋ฐ, ์๋ ๋ฌด์ง์ฅ ์๋์จ๋ค. ํฌ๊ธฐ... ๋ค์ ์ฒ์ ๋ฐฉ์์ผ๋ก ใ ใ ใ
- ์๋์ผ ์ง์ ๋ง๋ค ํ์์๊ณ ,
- ๊ฒ์ํด๋ณด๋๊น...
import itertools
def solution(n, info):
#n : ํ์ด ์. 1~10 ์ฌ์ด. ๋ฐ์๊ฐ 10๊ฐ ๋ฐ์ ์๋จ
#info :๊ณผ๋
์_์ ์์นธ 11 ๊ณ ์ .
๋ผ์ด์ธ์_๊ณผ๋
= [i for i in range(n+1)]
comb = itertools.combinations_with_replacement(๋ผ์ด์ธ์_๊ณผ๋
, 11)
comb = [list(c) for c in comb if sum(c) == n]
print(comb)
perm = []
for c in comb:
all_permutations = itertools.permutations(c)
for ap in all_permutations:
if list(ap) not in perm:
perm.append(list(ap))
i = 2
for p in perm:
print(p)
i -= 1
if i<0 :
break
# for pp in p:
# print(pp)
## i += 1
# if i > 1:
# break
#์ ์๋น๊ต. ์ค๋ณต ์กฐํฉ์์ ํ๋์ฉ ๊บผ๋ด์ ์ ์๋ฅผ ๋จผ์ ๊ณ์ฐํ๋ค.
๋ผ์ด์ธ_์ต๋์ ์ = 0
๋ผ์ด์ธ_๊ณผ๋
๋ฐฐ์ด = [0 for i in range(11)]
for c in comb:
๋ผ์ด์ธ์ ์ = 0
์ดํผ์น์ ์ = 0
if c == (0,2,2,0,1,0,0,0,0,0,0):
print("์ฐพ์๋ค ์๋")
for i in range(len(info)):
if info[i] > c[i]:
์ดํผ์น์ ์ += 10-i
elif info[i] < c[i]:
๋ผ์ด์ธ์ ์ += 10-i
if ๋ผ์ด์ธ_์ต๋์ ์ < ๋ผ์ด์ธ์ ์ - ์ดํผ์น์ ์:
๋ผ์ด์ธ_์ต๋์ ์ = ๋ผ์ด์ธ์ ์ - ์ดํผ์น์ ์
#print(๋ผ์ด์ธ_๊ณผ๋
๋ฐฐ์ด,c)
๋ผ์ด์ธ_๊ณผ๋
๋ฐฐ์ด = c
if ๋ผ์ด์ธ_์ต๋์ ์ <= 0:
return [-1]
return ๋ผ์ด์ธ_๊ณผ๋
๋ฐฐ์ด
print(solution(5, [1,1,1,1,1,0,0,0,0,0,0]))
- ๋ค์... ใ
ใ
ใ
- ํ ์ผ๋ ์ฑ๊ณต
import itertools
def solution(n, info):
arrow_n_score = []
ryan_arrow = [0 for i in range(11)]
for i in range(len(info)):
์ ์์์น = i
ํ์ํ์ด = info[i]+1 #์ด๊ธฐ๋ ค๋ฉด ํ์ํ ํ์ด
์ ์ํจ์จ = (10-i)/ํ์ํ์ด
if info[i] > 0:
์ ์ํจ์จ *= 2
arrow_n_score.append([์ ์์์น, ์ ์ํจ์จ, ํ์ํ์ด])
arrow_n_score.sort(key=lambda x:(-x[1],x[2]))
print(arrow_n_score)
index = 0
while n > 0:
print("์ฒซ๋ฒ์งธ", arrow_n_score[index])
if arrow_n_score[index][2] <= n:
ryan_arrow[arrow_n_score[index][0]] = arrow_n_score[index][2]
n -= arrow_n_score[index][2]
else:
if index == 10:
ryan_arrow[arrow_n_score[10][0]] = n
n = 0
index += 1
# ์ ์๊ณ์ฐํด์... ๋ชป ๋์ด๊ฐ๋ฉด [-1] ๋ฆฌํด
sum_info, sum_ryan = 0, 0
for i in range(len(info)):
if info[i] > ryan_arrow[i]:
sum_info += 10-i
elif info[i] < ryan_arrow[i]:
sum_ryan += 10-i
if sum_info < sum_ryan:
return ryan_arrow
else:
return [-1]
- ์ฑ์ ์?
- ์คํจ...
- ๋ค์ ์์ ์ด๋ค ใ ใ ใ ใ
์ ํ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (0.01ms, 10.6MB)
ํ
์คํธ 2 ใ ์คํจ (0.03ms, 10.4MB)
ํ
์คํธ 3 ใ ์คํจ (0.02ms, 10.2MB)
ํ
์คํธ 4 ใ ์คํจ (0.02ms, 10.3MB)
ํ
์คํธ 5 ใ ํต๊ณผ (0.02ms, 10.3MB)
ํ
์คํธ 6 ใ ์คํจ (0.02ms, 10.5MB)
ํ
์คํธ 7 ใ ํต๊ณผ (0.02ms, 10.4MB)
ํ
์คํธ 8 ใ ํต๊ณผ (0.02ms, 10.4MB)
ํ
์คํธ 9 ใ ํต๊ณผ (0.02ms, 10.6MB)
ํ
์คํธ 10 ใ ์คํจ (0.02ms, 10.3MB)
ํ
์คํธ 11 ใ ํต๊ณผ (0.02ms, 10.2MB)
ํ
์คํธ 12 ใ ์คํจ (0.02ms, 10.4MB)
ํ
์คํธ 13 ใ ํต๊ณผ (0.02ms, 10.5MB)
ํ
์คํธ 14 ใ ์คํจ (0.02ms, 10.4MB)
ํ
์คํธ 15 ใ ์คํจ (0.02ms, 10.5MB)
ํ
์คํธ 16 ใ ์คํจ (0.02ms, 10.4MB)
ํ
์คํธ 17 ใ ํต๊ณผ (0.02ms, 10.5MB)
ํ
์คํธ 18 ใ ํต๊ณผ (0.02ms, 10.5MB)
ํ
์คํธ 19 ใ ํต๊ณผ (0.02ms, 10.4MB)
ํ
์คํธ 20 ใ ํต๊ณผ (0.02ms, 10.4MB)
ํ
์คํธ 21 ใ ์คํจ (0.02ms, 10.4MB)
ํ
์คํธ 22 ใ ํต๊ณผ (0.02ms, 10.3MB)
ํ
์คํธ 23 ใ ํต๊ณผ (0.02ms, 10.6MB)
ํ
์คํธ 24 ใ ํต๊ณผ (0.02ms, 10.3MB)
ํ
์คํธ 25 ใ ํต๊ณผ (0.02ms, 10.3MB)
- ์์ = ์คํจ
์ ํ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (0.03ms, 10.4MB)
ํ
์คํธ 2 ใ ํต๊ณผ (0.03ms, 10.5MB)
ํ
์คํธ 3 ใ ํต๊ณผ (0.04ms, 10.5MB)
ํ
์คํธ 4 ใ ํต๊ณผ (0.05ms, 10.4MB)
ํ
์คํธ 5 ใ ํต๊ณผ (0.05ms, 10.4MB)
ํ
์คํธ 6 ใ ํต๊ณผ (0.03ms, 10.4MB)
ํ
์คํธ 7 ใ ํต๊ณผ (0.03ms, 10.5MB)
ํ
์คํธ 8 ใ ์คํจ (0.03ms, 10.4MB)
ํ
์คํธ 9 ใ ์คํจ (0.05ms, 10.5MB)
ํ
์คํธ 10 ใ ํต๊ณผ (0.05ms, 10.4MB)
ํ
์คํธ 11 ใ ์คํจ (0.04ms, 10.4MB)
ํ
์คํธ 12 ใ ํต๊ณผ (0.05ms, 10.4MB)
ํ
์คํธ 13 ใ ์คํจ (0.05ms, 10.4MB)
ํ
์คํธ 14 ใ ํต๊ณผ (0.05ms, 10.4MB)
ํ
์คํธ 15 ใ ํต๊ณผ (0.05ms, 10.6MB)
ํ
์คํธ 16 ใ ํต๊ณผ (0.04ms, 10.4MB)
ํ
์คํธ 17 ใ ํต๊ณผ (0.06ms, 10.4MB)
ํ
์คํธ 18 ใ ์คํจ (0.03ms, 10.6MB)
ํ
์คํธ 19 ใ ํต๊ณผ (0.05ms, 10.4MB)
ํ
์คํธ 20 ใ ์คํจ (0.04ms, 10.6MB)
ํ
์คํธ 21 ใ ์คํจ (0.05ms, 10.5MB)
ํ
์คํธ 22 ใ ์คํจ (0.04ms, 10.4MB)
ํ
์คํธ 23 ใ ํต๊ณผ (0.04ms, 10.3MB)
ํ
์คํธ 24 ใ ํต๊ณผ (0.05ms, 10.4MB)
ํ
์คํธ 25 ใ ํต๊ณผ (0.06ms, 10.4MB)
- ๊ทผ๋ฐ... ์ด๋?
- ์ผ... ์ด๊ฑฐ? ์ด๊ฑฐ!?!?!? ์ด๊ฑฐ...
- ํค๋ฉ๋ผ ์ ๋ต ๊ฐ๋ค. ใ ใ ใ
- ์ผ... ์ด๊ฑฐ? ์ด๊ฑฐ!?!?!? ์ด๊ฑฐ...
- ํค๋ฉ๋ผ ์ฝ๋ฉ ์ ๋ต = ํต๊ณผํ๋ ์ฝ๋ 2๊ฐ๋ฅผ ํฉ์ณ์ ์ ๋ต์ ์ถ๋ ฅํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ง๋๋ ๊ฒ์ ๋งํจ.
- ์... ์ ์ฅ!
- 21๋ฒ์ A,B ๋๋ค ํต๊ณผ ๋ชป ํ๋ค?
- ์... ์ ์ฅ!
- ์ ์ฅ!
import itertools
def solution(n, info):
nn = n
arrow_n_score = [] #๊ณต๊ฒฉ
arrow_n_score2 = [] #๋ฐฉ์ด
ryan_arrow = [0 for i in range(11)]
ryan_arrow2 = [0 for i in range(11)]
for i in range(len(info)):
์ ์์์น = i
ํ์ํ์ด = info[i]+1 #์ด๊ธฐ๋ ค๋ฉด ํ์ํ ํ์ด
์ ์ํจ์จ1 = (10-i)/ํ์ํ์ด
์ ์ํจ์จ2 = (10-i)/ํ์ํ์ด
if info[i] > 0:
์ ์ํจ์จ1 += 10-i
์ ์ํจ์จ2 *= 2
arrow_n_score.append([์ ์์์น, ์ ์ํจ์จ1, ํ์ํ์ด])
arrow_n_score2.append([์ ์์์น, ์ ์ํจ์จ2, ํ์ํ์ด])
arrow_n_score.sort(key=lambda x:(-x[1],x[2]))
index = 0
while n > 0:
if arrow_n_score[index][2] <= n:
ryan_arrow[arrow_n_score[index][0]] = arrow_n_score[index][2]
n -= arrow_n_score[index][2]
else:
if index == 10:
ryan_arrow[arrow_n_score[10][0]] = n
n = 0
index += 1
arrow_n_score2.sort(key=lambda x:(-x[1],x[2]))
n = nn
index = 0
while n > 0:
if arrow_n_score2[index][2] <= n:
ryan_arrow2[arrow_n_score2[index][0]] = arrow_n_score2[index][2]
n -= arrow_n_score2[index][2]
else:
if index == 10:
ryan_arrow2[arrow_n_score2[10][0]] = n
n = 0
index += 1
sum_info, sum_ryan = 0, 0
for i in range(len(info)):
if info[i] > ryan_arrow[i]:
sum_info += 10-i
elif info[i] < ryan_arrow[i]:
sum_ryan += 10-i
sum_info2, sum_ryan2 = 0, 0
for i in range(len(info)):
if info[i] > ryan_arrow2[i]:
sum_info2 += 10-i
elif info[i] < ryan_arrow2[i]:
sum_ryan2 += 10-i
arrow_n_score.sort(key=lambda x:(x[0]))
arrow_n_score2.sort(key=lambda x:(x[0]))
sum1 = sum_ryan - sum_info
sum2 = sum_ryan2 - sum_info2
#print(sum1, ryan_arrow)
#print(sum2, ryan_arrow2)
if sum_ryan2 <= sum_info2 and sum_ryan <= sum_info: # ์ ์๊ณ์ฐํด์... ๋ชป ๋์ด๊ฐ๋ฉด [-1] ๋ฆฌํด
return [-1]
elif sum_ryan2 - sum_info2 > sum_ryan - sum_info:
return ryan_arrow2
elif sum_ryan2 - sum_info2 < sum_ryan - sum_info:
return ryan_arrow
else:
for i in reversed(range(len(info))):
if ryan_arrow[i] > ryan_arrow2[i]:
return ryan_arrow
else:
return ryan_arrow2
return [0]
์ ํ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (0.03ms, 10.4MB)
ํ
์คํธ 2 ใ ํต๊ณผ (0.05ms, 10.4MB)
ํ
์คํธ 3 ใ ํต๊ณผ (0.05ms, 10.6MB)
ํ
์คํธ 4 ใ ํต๊ณผ (0.05ms, 10.3MB)
ํ
์คํธ 5 ใ ํต๊ณผ (0.03ms, 10.5MB)
ํ
์คํธ 6 ใ ํต๊ณผ (0.03ms, 10.4MB)
ํ
์คํธ 7 ใ ํต๊ณผ (0.04ms, 10.5MB)
ํ
์คํธ 8 ใ ํต๊ณผ (0.04ms, 10.4MB)
ํ
์คํธ 9 ใ ํต๊ณผ (0.03ms, 10.4MB)
ํ
์คํธ 10 ใ ํต๊ณผ (0.04ms, 10.6MB)
ํ
์คํธ 11 ใ ํต๊ณผ (0.03ms, 10.4MB)
ํ
์คํธ 12 ใ ํต๊ณผ (0.03ms, 10.5MB)
ํ
์คํธ 13 ใ ํต๊ณผ (0.03ms, 10.4MB)
ํ
์คํธ 14 ใ ํต๊ณผ (0.03ms, 10.5MB)
ํ
์คํธ 15 ใ ํต๊ณผ (0.03ms, 10.5MB)
ํ
์คํธ 16 ใ ํต๊ณผ (0.05ms, 10.5MB)
ํ
์คํธ 17 ใ ํต๊ณผ (0.03ms, 10.3MB)
ํ
์คํธ 18 ใ ํต๊ณผ (0.03ms, 10.2MB)
ํ
์คํธ 19 ใ ํต๊ณผ (0.04ms, 10.6MB)
ํ
์คํธ 20 ใ ํต๊ณผ (0.05ms, 10.4MB)
ํ
์คํธ 21 ใ ์คํจ (0.03ms, 10.4MB)
ํ
์คํธ 22 ใ ํต๊ณผ (0.03ms, 10.4MB)
ํ
์คํธ 23 ใ ํต๊ณผ (0.04ms, 10.5MB)
ํ
์คํธ 24 ใ ํต๊ณผ (0.05ms, 10.5MB)
ํ
์คํธ 25 ใ ํต๊ณผ (0.05ms, 10.4MB)
- ํ
์คํธ ์ผ์ด์ค 21๋ฒ ๋ญ๋???
- ์ด๋ ค์ค์. ใ
.ใ
- ์.. ์ 21๋ฒ ์คํจํ ๊ฑธ ๋ชป ๋ดค์ง?
- ์๊ฐ๋ง ๋ญ๋นํ๋ค...
- ์.. ์ 21๋ฒ ์คํจํ ๊ฑธ ๋ชป ๋ดค์ง?
- ์ด๋ ค์ค์. ใ
.ใ
- ๋ฆฌ์ผ ๋ฉ์ฒญ์ด์ ์ฌ๋์ .
- ์คํํธ!
- ํ์ด ํจ์จ + ๊ณต๊ฒฉ / ๋ฐฉ์ด ๊ตฌ๋ถ ํด์ ํ๋์ ๋ฆฌ์คํธ๋ก ๊ด๋ฆฌ
- ์ด์ํ๋ค... ใ .ใ
- ํ์ด ํจ์จ + ๊ณต๊ฒฉ / ๋ฐฉ์ด ๊ตฌ๋ถ ํด์ ํ๋์ ๋ฆฌ์คํธ๋ก ๊ด๋ฆฌ
- ์คํํธ!
- ๋ฌธ์ ์ ๊ฐ์ฅ ํฐ ์ ์ ์ฐจ์ด๋ก ์ฐ์น...์ธ๋ฐ... ์ด ๋ฌธ์ ๋ ํฌ๊ธฐ๋ค.
- ์ด ๋ฌธ์ ๋ ์ ๋ชจ๋ฅด๊ฒ ๋ค.
- ์ง์ง ์นด์นด์ค๋ ๋๋์ ์๋ง๋ ๋ฏ... ใ
ก.ใ
ก;;;
- ๋์ค์ ํ ์คํธ ์ผ์ด์ค 1๋ฒ ๋ต์ด ์ 6์ ์ฐจ์ด๋ก ์ด๊ธฐ๋ ๊ฒ ์ ๋ต์ธ์ง ๋ฃ๊ณ ๋์ ๋ค์ ๋์ ํ๊ธฐ๋ก...
- ์ง์ง ์นด์นด์ค๋ ๋๋์ ์๋ง๋ ๋ฏ... ใ
ก.ใ
ก;;;
- ์ผ์ฃผ์ผ์ด ์ง๋ฌ๊ณ , ๋๋ ๋ด๊ฐ ์ฃผํ์
๋ง์ ๋น ์ ธ์์๋ค๋ ์ฌ์ค์ ์๊ฒ ๋์๋ค.
- ๋ถ๋ช ํ ์ฒ์ ์ง ์ฝ๋์๋ ์ด๋ ๊ฒ ๋์ด ์์๋๋ฐ...
- ์๋ก ์ง๋ฉด์ ์ด๋ฐ ๋ถ๋ถ์ ๊น๋จน์ด๋ฒ๋ ธ๋ค.
- ๋ง์ฝ, k(k๋ 1~10์ฌ์ด์ ์์ฐ์)์ ์ ์ดํผ์น๊ฐ a๋ฐ์ ๋งํ๊ณ ๋ผ์ด์ธ์ด b๋ฐ์ ๋งํ์ ๊ฒฝ์ฐ
- ๋ ๋ง์ ํ์ด์ k์ ์ ๋งํ ์ ์๊ฐ k ์ ์ ๊ฐ์ ธ๊ฐ๋๋ค.
- ๋จ, a = b์ผ ๊ฒฝ์ฐ๋ ์ดํผ์น๊ฐ k์ ์ ๊ฐ์ ธ๊ฐ๋๋ค.
- k์ ์ ์ฌ๋ฌ ๋ฐ ๋งํ๋ k์ ๋ณด๋ค ๋ง์ ์ ์๋ฅผ ๊ฐ์ ธ๊ฐ๋ ๊ฒ ์๋๊ณ k์ ๋ง ๊ฐ์ ธ๊ฐ๋ ๊ฒ์ ์ ์ํ์ธ์.
- ๋ํ a = b = 0 ์ธ ๊ฒฝ์ฐ, ์ฆ, ๋ผ์ด์ธ๊ณผ ์ดํผ์น ๋ชจ๋ k์ ์ ๋จ ํ๋์ ํ์ด๋ ๋งํ์ง ๋ชปํ ๊ฒฝ์ฐ๋ ์ด๋ ๋๊ตฌ๋ k์ ์ ๊ฐ์ ธ๊ฐ์ง ์์ต๋๋ค.
import itertools
def solution(n, info):
arrow_n_score = [] # ๋ช
๋ น ์ฐ์ ์์
ryan_arrow = [0 for i in range(11)]
for i in range(11):
์ ์์์น = i
ํ์ํ์ด = info[i] # ์๋ ์ ์๋ฅผ ๋ฌด๋ ฅํ ์ํค๋ ค๋ฉด ํ์ํ ํ์ด
if ํ์ํ์ด == 0:
arrow_n_score.append([์ ์์์น, 10-i, 1, "๋ฌดํ์
์ฑ"])
else:
#์ ์ํจ์จ = (10-i)/ํ์ํ์ด
#arrow_n_score.append([์ ์์์น, ์ ์ํจ์จ, ํ์ํ์ด, "๋ฌด๋ ฅํ"]) #๋ฌด๋ ฅํ๊ฐ ์๋๋ผ ์ดํผ์น๊ฐ ์ ์๋ฅผ ๊ฐ์ ธ๊ฐ.
์ ์ํจ์จ = ((10-i)+(10-i)/(ํ์ํ์ด+1) + 2*(10-i)/(ํ์ํ์ด+1))/2
arrow_n_score.append([์ ์์์น, ์ ์ํจ์จ, ํ์ํ์ด+1, "๋นผ์๊ธฐ"])
arrow_n_score.sort(key=lambda x:(-x[1],x[2],-x[0]))
index = 0
while n > 0 and len(arrow_n_score) > index:
print("์คํํธ:",arrow_n_score)
print(ryan_arrow)
arrows = arrow_n_score[index][2]
points = arrow_n_score[index][0]
if arrows <= n:
ryan_arrow[points] = arrows
n -= arrows
for i in range(len(arrow_n_score)):
if arrow_n_score[i][0] == points:
arrow_n_score.pop(i)
arrow_n_score.insert(0,[])
arrow_n_score= [a for a in arrow_n_score if len(a) != 0]
index = 0
else:
index += 1
print(ryan_arrow)
if n > 0:
ryan_arrow[10] = n
sum_info, sum_ryan = 0, 0
for i in range(11):
if info[i] > ryan_arrow[i]:
sum_info += 10-i
elif info[i] < ryan_arrow[i]:
sum_ryan += 10-i
arrow_n_score.sort(key=lambda x:(x[0]))
sum1 = sum_ryan - sum_info
print(sum_info, info)
print(sum_ryan, ryan_arrow)
if sum_ryan <= sum_info: # ์ ์๊ณ์ฐํด์... ๋ชป ๋์ด๊ฐ๋ฉด [-1] ๋ฆฌํด
return [-1]
else:
return ryan_arrow
- ๋ ๊ฑฐ ๊ฐ๊ธฐ๋? ใ ใ ใ
import itertools
def solution(n, info):
arrow_n_score = [] # ๋ช
๋ น ์ฐ์ ์์
arrow_n_score2 = []
arrow_n_score3 = []
ryan_arrow = [0 for i in range(11)]
ryan_arrow2 = [0 for i in range(11)]
ryan_arrow3 = [0 for i in range(11)]
for i in range(11):
์ ์์์น = i
ํ์ํ์ด = info[i] # ์๋ ์ ์๋ฅผ ๋ฌด๋ ฅํ ์ํค๋ ค๋ฉด ํ์ํ ํ์ด
if ํ์ํ์ด == 0:
arrow_n_score.append([์ ์์์น, 10-i, 1]) #, "๋ฌดํ์
์ฑ"
else:
์ ์ํจ์จ = (10-i)/ํ์ํ์ด * 2
arrow_n_score.append([์ ์์์น, -์ ์ํจ์จ, ํ์ํ์ด, "๋ฌด์ธ๋ชจ"]) #๋ฌด๋ ฅํ๊ฐ ์๋๋ผ ์ดํผ์น๊ฐ ์ ์๋ฅผ ๊ฐ์ ธ๊ฐ. ๋ฌด์ธ๋ชจ
์ ์ํจ์จ = (10-i)/ํ์ํ์ด + (10-i)/(ํ์ํ์ด+1)
arrow_n_score.append([์ ์์์น, ์ ์ํจ์จ, ํ์ํ์ด+1]) #, "๋นผ์๊ธฐ"
์ ์ํจ์จ2 = (10-i)/ํ์ํ์ด + (10-i)
arrow_n_score2.append([์ ์์์น, ์ ์ํจ์จ, ํ์ํ์ด+1]) #, "๋ฒ ๋ฆฌ์์ด์
2"
์ ์ํจ์จ3 = 2 * (10-i)/ํ์ํ์ด
arrow_n_score3.append([์ ์์์น, ์ ์ํจ์จ, ํ์ํ์ด+1]) #, "๋ฒ ๋ฆฌ์์ด์
3"
arrow_n_score.sort(key=lambda x:(-x[1],x[2],-x[0]))
arrow_n_score2.sort(key=lambda x:(-x[1],x[2],-x[0]))
arrow_n_score3.sort(key=lambda x:(-x[1],x[2],-x[0]))
n2 = n
n3 = n
index = 0
while n > 0 and len(arrow_n_score) > index:
arrows = arrow_n_score[index][2]
points = arrow_n_score[index][0]
if arrows <= n:
ryan_arrow[points] = arrows
n -= arrows
for i in range(len(arrow_n_score)):
if arrow_n_score[i][0] == points:
arrow_n_score.pop(i)
arrow_n_score.insert(0,[])
arrow_n_score= [a for a in arrow_n_score if len(a) != 0]
index = 0
else:
index += 1
if n > 0:
ryan_arrow[10] = n
index = 0
while n2 > 0 and len(arrow_n_score2) > index:
arrows2 = arrow_n_score2[index][2]
points2 = arrow_n_score2[index][0]
if arrows2 <= n2:
ryan_arrow2[points] = arrows2
n2 -= arrows2
for i in range(len(arrow_n_score2)):
if arrow_n_score2[i][0] == points2:
arrow_n_score2.pop(i)
arrow_n_score2.insert(0,[])
arrow_n_score2= [a for a in arrow_n_score2 if len(a) != 0]
index = 0
else:
index += 1
if n2 > 0:
ryan_arrow2[10] = n2
index = 0
while n3 > 0 and len(arrow_n_score3) > index:
arrows3 = arrow_n_score3[index][2]
points3 = arrow_n_score3[index][0]
if arrows3 <= n3:
ryan_arrow3[points] = arrows3
n3 -= arrows3
for i in range(len(arrow_n_score3)):
if arrow_n_score3[i][0] == points3:
arrow_n_score3.pop(i)
arrow_n_score3.insert(0,[])
arrow_n_score3= [a for a in arrow_n_score3 if len(a) != 0]
index = 0
else:
index += 1
if n3 > 0:
ryan_arrow3[10] = n3
sum_info1, sum_ryan1 = 0, 0
for i in range(11):
if info[i] > ryan_arrow[i]:
sum_info1 += 10-i
elif info[i] < ryan_arrow[i]:
sum_ryan1 += 10-i
sum1 = sum_ryan1 - sum_info1
sum_info2, sum_ryan2 = 0, 0
for i in range(11):
if info[i] > ryan_arrow2[i]:
sum_info2 += 10-i
elif info[i] < ryan_arrow2[i]:
sum_ryan2 += 10-i
sum2 = sum_ryan2 - sum_info2
sum_info3, sum_ryan3 = 0, 0
for i in range(11):
if info[i] > ryan_arrow3[i]:
sum_info3 += 10-i
elif info[i] < ryan_arrow3[i]:
sum_ryan3 += 10-i
sum3 = sum_ryan3 - sum_info3
if sum_ryan1 <= sum_info1 and sum_ryan2 <= sum_info2 and sum_ryan3 <= sum_info3: # ์ ์๊ณ์ฐํด์... ๋ชป ๋์ด๊ฐ๋ฉด [-1] ๋ฆฌํด
return [-1]
elif sum1 > sum2 and sum1 > sum3:
return ryan_arrow
elif sum2 > sum1 and sum2 > sum3:
return ryan_arrow2
elif sum3 > sum1 and sum3 > sum2:
return ryan_arrow3
else:
for i in reversed(range(len(info))):
if ryan_arrow[i] > ryan_arrow2[i] and ryan_arrow[i] > ryan_arrow3[i] :
return ryan_arrow
elif ryan_arrow2[i] > ryan_arrow[i] and ryan_arrow2[i] > ryan_arrow3[i] :
return ryan_arrow2
else:
return ryan_arrow3
return [0]
- 3๊ฐ๋ฅผ ์์!
'๊ฒ์ ํ๋ก๊ทธ๋๋ฐ > Python ํ๋ก๊ทธ๋๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค ํผ์์ ํ๋ ํฑํํ (2) | 2023.02.24 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค ๋์ถฉ ๋ง๋ ์ํ (0) | 2023.02.23 |
ํ๋ก๊ทธ๋๋จธ์ค [3์ฐจ] ํ์ผ๋ช ์ ๋ฆฌ (1) | 2023.02.23 |
์ฝ๋ฉํ ์คํธ ์ ์ ์ผ๊ฐํ (0) | 2023.02.23 |
ํ๋ก๊ทธ๋๋จธ์ค ํํ ๊ฐ๋ฅํ ์ด์งํธ๋ฆฌ (ํฌํ์ด์งํธ๋ฆฌ) (0) | 2023.02.22 |