[๋ฐฑ์ค€/python] 7490๋ฒˆ : 0 ๋งŒ๋“ค๊ธฐ

2021. 9. 17. 22:20

๋ฌธ์ œ

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์— ๋„ฃ๊ณ  ์ถœ๋ ฅ ํ˜•์‹์— ๋งž์ถฐ ์ถœ๋ ฅํ•œ๋‹ค.

 

2021.04.01 - [๐Ÿ”์•Œ๊ณ ๋ฆฌ์ฆ˜/๐Ÿ”…๊ฐœ๋…์ •๋ฆฌ] - [ํŒŒ์ด์ฌ/python] ์ˆœ์—ด๊ณผ ์กฐํ•ฉ : itertools ์ด์šฉํ•˜๊ธฐ (permutations, combinations)

 

[ํŒŒ์ด์ฌ/python] ์ˆœ์—ด๊ณผ ์กฐํ•ฉ : itertools ์ด์šฉํ•˜๊ธฐ (permutations, combinations)

itertools๋ฅผ ์ด์šฉํ•˜์—ฌ ์ˆœ์—ด๊ณผ ์กฐํ•ฉ์„ ๊ตฌํ˜„ํ•˜๋ฉด ๋”์šฑ ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. 1. ์ˆœ์—ด : permutations(N, r) N์—์„œ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ณ , r๊ฐœ๋ฅผ ๋ฝ‘์•„ ์ˆœ์„œ๋Œ€๋กœ ๋‚˜์—ดํ•œ๋‹ค. ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ๋ฝ‘

ye333.tistory.com

 

728x90

BELATED ARTICLES

more