[๋ฐฑ์ค/python] 7490๋ฒ : 0 ๋ง๋ค๊ธฐ
๋ฌธ์
1๋ถํฐ N๊น์ง์ ์๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ด ์์ด 1 2 3 ... N์ ์๊ฐํ์.
๊ทธ๋ฆฌ๊ณ '+'๋ '-', ๋๋ ' '(๊ณต๋ฐฑ)์ ์ซ์ ์ฌ์ด์ ์ฝ์ ํ์(+๋ ๋ํ๊ธฐ, -๋ ๋นผ๊ธฐ, ๊ณต๋ฐฑ์ ์ซ์๋ฅผ ์ด์ด ๋ถ์ด๋ ๊ฒ์ ๋ปํ๋ค). ์ด๋ ๊ฒ ๋ง๋ ์์์ ๊ฐ์ ๊ณ์ฐํ๊ณ ๊ทธ ๊ฒฐ๊ณผ๊ฐ 0์ด ๋ ์ ์๋์ง๋ฅผ ์ดํผ์.
N์ด ์ฃผ์ด์ก์ ๋ ์์์ ๊ฒฐ๊ณผ๊ฐ 0์ด ๋๋ ๋ชจ๋ ์์์ ์ฐพ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ผ.
์ ๋ ฅ
์ฒซ ๋ฒ์งธ ์ค์ ํ ์คํธ ์ผ์ด์ค์ ๊ฐ์๊ฐ ์ฃผ์ด์ง๋ค(<10).
๊ฐ ํ ์คํธ ์ผ์ด์ค์ ์์ฐ์ N์ด ์ฃผ์ด์ง๋ค(3 <= N <= 9).
์ถ๋ ฅ
๊ฐ ํ ์คํธ ์ผ์ด์ค์ ๋ํด ASCII ์์์ ๋ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ 0์ด ๋๋ ๋ชจ๋ ์์์ ์ถ๋ ฅํ๋ค. ๊ฐ ํ ์คํธ ์ผ์ด์ค์ ๊ฒฐ๊ณผ๋ ํ ์ค์ ๋์ ๊ตฌ๋ถํ๋ค.
์ ๋ต
from itertools import product
import sys
input = sys.stdin.readline
answer = []
for _ in range(int(input())):
N = int(input())
result = []
for insert in product(['+', '-', ' '], repeat=N-1):
num = 1
expression = '1'
for i in insert:
num += 1
expression += i + str(num)
if eval(expression.replace(' ', '')) == 0:
result.append(expression)
answer.append(sorted(result))
for result in answer:
for r in result:
print(r)
print()
๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ค ๊ฒ์ฌํ๋ ๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ์ ํ์ฉํ๋ค.
์ค๋ณต ์์ด product๋ฅผ ์ด์ฉํ์ฌ +, -, ๋์ด์ฐ๊ธฐ ์ค ์ค๋ณต์ ํ์ฉํ์ฌ N-1๊ฐ๋ฅผ ๋ฝ๋๋ค.
์ดํ expression์ ์ซ์์ ๋ฒ๊ฐ์ ๋ฃ์ผ๋ฉฐ ์์ ๋ฌธ์์ด์ ์์ฑํ๋ค.
expression์ ๊ณต๋ฐฑ์ ์ ๊ฑฐํ๊ณ eval์ ์ด์ฉํ์ฌ ๊ณ์ฐํ์ ๋ ๊ฐ์ด 0์ด๋ผ๋ฉด result์ ๋ฃ๋๋ค.
result๋ฅผ ์ ๋ ฌํ์ฌ answer์ ๋ฃ๊ณ ์ถ๋ ฅ ํ์์ ๋ง์ถฐ ์ถ๋ ฅํ๋ค.
'๐์๊ณ ๋ฆฌ์ฆ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค/python] 11660๋ฒ : ๊ตฌ๊ฐ ํฉ ๊ตฌํ๊ธฐ 5 (0) | 2021.09.20 |
---|---|
[๋ฐฑ์ค/python] 17779๋ฒ : ๊ฒ๋ฆฌ๋งจ๋๋ง 2 (0) | 2021.09.18 |
[๋ฐฑ์ค/python] 1987๋ฒ : ์ํ๋ฒณ (0) | 2021.09.16 |
[๋ฐฑ์ค/python] 1927๋ฒ : ์ต์ ํ (0) | 2021.09.06 |
[๋ฐฑ์ค/python] 1753๋ฒ : ์ต๋จ๊ฒฝ๋ก (0) | 2021.09.01 |