๋ฌธ์
๋ก๋ 6/45(์ดํ '๋ก๋'๋ก ํ๊ธฐ)๋ 1๋ถํฐ 45๊น์ง์ ์ซ์ ์ค 6๊ฐ๋ฅผ ์ฐ์ด์ ๋งํ๋ ๋ํ์ ์ธ ๋ณต๊ถ์ ๋๋ค. ์๋๋ ๋ก๋์ ์์๋ฅผ ์ ํ๋ ๋ฐฉ์์ ๋๋ค.
1 | 6๊ฐ ๋ฒํธ๊ฐ ๋ชจ๋ ์ผ์น |
2 | 5๊ฐ ๋ฒํธ๊ฐ ์ผ์น |
3 | 4๊ฐ ๋ฒํธ๊ฐ ์ผ์น |
4 | 3๊ฐ ๋ฒํธ๊ฐ ์ผ์น |
5 | 2๊ฐ ๋ฒํธ๊ฐ ์ผ์น |
6(๋์ฒจ) | ๊ทธ ์ธ |
๋ก๋๋ฅผ ๊ตฌ๋งคํ ๋ฏผ์ฐ๋ ๋น์ฒจ ๋ฒํธ ๋ฐํ์ผ์ ํ์๊ณ ๋ํ๊ณ ์์์ต๋๋ค. ํ์ง๋ง, ๋ฏผ์ฐ์ ๋์์ด ๋ก๋์ ๋์๋ฅผ ํ์ฌ, ์ผ๋ถ ๋ฒํธ๋ฅผ ์์๋ณผ ์ ์๊ฒ ๋์์ต๋๋ค. ๋น์ฒจ ๋ฒํธ ๋ฐํ ํ, ๋ฏผ์ฐ๋ ์์ ์ด ๊ตฌ๋งคํ๋ ๋ก๋๋ก ๋น์ฒจ์ด ๊ฐ๋ฅํ๋ ์ต๊ณ ์์์ ์ต์ ์์๋ฅผ ์์๋ณด๊ณ ์ถ์ด ์ก์ต๋๋ค.
์์๋ณผ ์ ์๋ ๋ฒํธ๋ฅผ 0์ผ๋ก ํ๊ธฐํ๊ธฐ๋ก ํ๊ณ , ๋ฏผ์ฐ๊ฐ ๊ตฌ๋งคํ ๋ก๋ ๋ฒํธ 6๊ฐ๊ฐ 44, 1, 0, 0, 31 25๋ผ๊ณ ๊ฐ์ ํด๋ณด๊ฒ ์ต๋๋ค. ๋น์ฒจ ๋ฒํธ 6๊ฐ๊ฐ 31, 10, 45, 1, 6, 19๋ผ๋ฉด, ๋น์ฒจ ๊ฐ๋ฅํ ์ต๊ณ ์์์ ์ต์ ์์์ ํ ์๋ ์๋์ ๊ฐ์ต๋๋ค.
์ต๊ณ ์์ ๋ฒํธ | 31 | 0→10 | 44 | 1 | 0→6 | 25 | 4๊ฐ ๋ฒํธ ์ผ์น, 3๋ฑ |
์ต์ ์์ ๋ฒํธ | 31 | 0→11 | 44 | 1 | 0→7 | 25 | 2๊ฐ ๋ฒํธ ์ผ์น, 5๋ฑ |
- ์์์ ์๊ด์์ด, ๊ตฌ๋งคํ ๋ก๋์ ๋น์ฒจ ๋ฒํธ์ ์ผ์นํ๋ ๋ฒํธ๊ฐ ์์ผ๋ฉด ๋งํ ๊ฑธ๋ก ์ธ์ ๋ฉ๋๋ค.
- ์์๋ณผ ์ ์๋ ๋ ๊ฐ์ ๋ฒํธ๋ฅผ ๊ฐ๊ฐ 10, 6์ด๋ผ๊ณ ๊ฐ์ ํ๋ฉด 3๋ฑ์ ๋น์ฒจ๋ ์ ์์ต๋๋ค.
- 3๋ฑ์ ๋ง๋๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ๋ค๋ ์กด์ฌํฉ๋๋ค. ํ์ง๋ง, 2๋ฑ ์ด์์ผ๋ก ๋ง๋๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
- ์์๋ณผ ์ ์๋ ๋ ๊ฐ์ ๋ฒํธ๋ฅผ ๊ฐ๊ฐ 11, 7์ด๋ผ๊ณ ๊ฐ์ ํ๋ฉด 5๋ฑ์ ๋น์ฒจ๋ ์ ์์ต๋๋ค.
- 5๋ฑ์ ๋ง๋๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ๋ค๋ ์กด์ฌํฉ๋๋ค. ํ์ง๋ง, 6๋ฑ(๋์ฒจ)์ผ๋ก ๋ง๋๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
๋ฏผ์ฐ๊ฐ ๊ตฌ๋งคํ ๋ก๋ ๋ฒํธ๋ฅผ ๋ด์ ๋ฐฐ์ด lottos, ๋น์ฒจ ๋ฒํธ๋ฅผ ๋ด์ ๋ฐฐ์ด win_nums๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ์ด๋, ๋น์ฒจ ๊ฐ๋ฅํ ์ต๊ณ ์์์ ์ต์ ์์๋ฅผ ์ฐจ๋ก๋๋ก ๋ฐฐ์ด์ ๋ด์์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ ์ฌํญ
- lottos๋ ๊ธธ์ด 6์ธ ์ ์ ๋ฐฐ์ด์ ๋๋ค.
- lottos์ ๋ชจ๋ ์์๋ 0 ์ด์ 45 ์ดํ์ธ ์ ์์
๋๋ค.
- 0์ ์์๋ณผ ์ ์๋ ์ซ์๋ฅผ ์๋ฏธํฉ๋๋ค.
- 0์ ์ ์ธํ ๋ค๋ฅธ ์ซ์๋ค์ lottos์ 2๊ฐ ์ด์ ๋ด๊ฒจ์์ง ์์ต๋๋ค.
- lottos์ ์์๋ค์ ์ ๋ ฌ๋์ด ์์ง ์์ ์๋ ์์ต๋๋ค.
- win_nums์ ๊ธธ์ด 6์ธ ์ ์ ๋ฐฐ์ด์ ๋๋ค.
- win_nums์ ๋ชจ๋ ์์๋ 1 ์ด์ 45 ์ดํ์ธ ์ ์์
๋๋ค.
- win_nums์๋ ๊ฐ์ ์ซ์๊ฐ 2๊ฐ ์ด์ ๋ด๊ฒจ์์ง ์์ต๋๋ค.
- win_nums์ ์์๋ค์ ์ ๋ ฌ๋์ด ์์ง ์์ ์๋ ์์ต๋๋ค.
๋์ ์ฝ๋
def solution(lottos, win_nums):
win = {6:1,5:2,4:3,3:4,2:5,1:6,0:6}
stack = []
arr = [0] * 2
# 0๊ณผ ๋ง์ ๋ก๋ ๋ฒํธ๋ง์ stack์ ์ถ๊ฐํ๋ค.
for i in range(len(lottos)):
if lottos[i] in win_nums:
stack.append(lottos[i])
if lottos[i] == 0:
stack.append(lottos[i])
# ๋ก๋๋ฒํธ๊ฐ ๋ง์ ์ต๋ ๊ฐ์์ ์ต์ ๊ฐ์๋ฅผ ๊ตฌํ๋ค.
max_cnt = len(stack)
min_cnt = len(stack) - stack.count(0)
# ํด์๋งต์์ key๋ฅผ ์ด์ฉํด value ๊ฐ์ ๋์ถํ๋ค.
for key in win:
if key == max_cnt:
arr[0] = win[key]
if key == min_cnt:
arr[1] = win[key]
return arr
'Algorithm > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Programmers] ์์ ๋ํ๊ธฐ (0) | 2022.04.29 |
---|---|
[Programmers] ๋ด์ (0) | 2022.04.29 |
[Programmers] ์ ๊ณ ๊ฒฐ๊ณผ ๋ฐ๊ธฐ (0) | 2022.04.27 |
[Programmers] ๋ฌธ์์ด ์์ถ (0) | 2022.04.23 |
[Programmers] ํ๋ฆฐํฐ (0) | 2022.04.14 |