๊ธฐ๋ก๋ฐฉ

BOJ_2961 : ๋„์˜์ด๊ฐ€ ๋งŒ๋“  ๋ง›์žˆ๋Š” ์Œ์‹ ๋ณธ๋ฌธ

CodingTest/Python

BOJ_2961 : ๋„์˜์ด๊ฐ€ ๋งŒ๋“  ๋ง›์žˆ๋Š” ์Œ์‹

Soom_1n 2022. 9. 10. 23:11

๐Ÿ‘‰ ๋ฌธ์ œ๋งํฌ

 

2961๋ฒˆ: ๋„์˜์ด๊ฐ€ ๋งŒ๋“  ๋ง›์žˆ๋Š” ์Œ์‹

์ฒซ์งธ ์ค„์— ์žฌ๋ฃŒ์˜ ๊ฐœ์ˆ˜ N(1 ≤ N ≤ 10)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ N๊ฐœ ์ค„์—๋Š” ๊ทธ ์žฌ๋ฃŒ์˜ ์‹ ๋ง›๊ณผ ์“ด๋ง›์ด ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋˜์–ด ์ฃผ์–ด์ง„๋‹ค. ๋ชจ๋“  ์žฌ๋ฃŒ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์š”๋ฆฌ๋ฅผ ๋งŒ๋“ค์—ˆ์„ ๋•Œ, ๊ทธ ์š”๋ฆฌ์˜ ์‹ ๋ง›๊ณผ ์“ด๋ง›์€

www.acmicpc.net



๐Ÿ”ธ ๋ฌธ์ œ ๋ถ„์„ ๐Ÿ”ธ

  • ์žฌ๋ฃŒ ์„ ํƒ์— ๋”ฐ๋ผ ์‹ ๋ง›๊ณผ ์“ด๋ง›์˜ ํ•ฉ์ด ๋ณ€ํ•œ๋‹ค.
    • ์‹ ๋ง›(s)์€ ๊ณฑ์œผ๋กœ ๊ณ„์‚ฐํ•œ๋‹ค.
    • ์“ด๋ง›(b)์€ ํ•ฉ์œผ๋กœ ๊ณ„์‚ฐํ•œ๋‹ค.
  • ์‹ ๋ง›๊ณผ ์“ด๋ง›์˜ ์ฐจ์ด์˜ ์ตœ์†Œ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.

๐Ÿ”ธ ์ฝ”๋“œ ๐Ÿ”ธ

n = int(input())

taste = []
visit = [0] * n
answer = 1000000000

for _ in range(n):
    taste.append(list(map(int,input().split())))

def dfs(d, m, s, b, x):
    global answer
    if d >= m:
        if s > b:
            sum = s - b
        else:
            sum = b - s
        answer = min(answer, sum)
        return
    
    for i in range(x,n):
        if visit[i] == 0:
            visit[i] = 1
            dfs(d+1, m, s*taste[i][0], b+taste[i][1], i)
            visit[i] = 0

for i in range(1, n+1):
    dfs(0, i, 1, 0, 0)

print(answer)

๐Ÿ”ธ ์ฝ”๋“œ ํ•ด์„ ๐Ÿ”ธ

  • answer์˜ ์ดˆ๊ธฐ๊ฐ’์€ ๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง„ ๋ง›์˜ ๋ฒ”์œ„(10์–ต)๋กœ ์„ ํƒํ–ˆ๋‹ค.
  • ์žฌ๊ท€๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ํƒ์ƒ‰ํ•˜๊ณ  ์ตœ์†Œ๊ฐ’์„ ๊ณ„์‚ฐํ•œ๋‹ค.
    • dfs์˜ ๊นŠ์ด์ œํ•œ์„ ์„ ํƒํ•  ์žฌ๋ฃŒ์˜ ์ˆ˜๋กœ ์ƒ๊ฐํ•˜๊ณ  ํƒ์ƒ‰ํ•œ๋‹ค.
    • 1๊ฐœ๋ถ€ํ„ฐ n๊ฐœ์˜ ์„ ํƒ์„ ๋ชจ๋‘ ํƒ์ƒ‰ํ•œ๋‹ค.
  • ์“ด๋ง› s๋Š” ๊ณฑ์œผ๋กœ ๊ณ„์‚ฐํ•˜๋ฏ€๋กœ ์ดˆ๊ธฐ๊ฐ’์„ 1๋กœ ์‹œ์ž‘ํ•œ๋‹ค.

๐Ÿ”ธ end ๐Ÿ”ธ

  • ์ฒ˜์Œ ํ’€์–ด๋ดค๋‹ค๋ฉด ์–ด๋ ค์šธ ์ˆ˜๋„ ์žˆ์—ˆ์„ ๊ฒƒ ๊ฐ™์€๋ฐ, BOJ_14620 : ๊ฝƒ๊ธธ ๋ฌธ์ œ์—์„œ ์‚ฌ์šฉํ•œ ํ’€์ด๋กœ ๊ฐ„๋‹จํžˆ ํ’€ ์ˆ˜ ์žˆ์—ˆ๋‹ค.
  • ๋น„ํŠธ๋งˆ์Šคํ‚น์œผ๋กœ๋„ ํ’€ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ์•„๋งˆ 1์ฐจ์› ๋ฆฌ์ŠคํŠธ์•ˆ์—์„œ ์žฌ๊ท€๋กœ ํƒ์ƒ‰ํ–ˆ์œผ๋‹ˆ, ๋น„์Šทํ•˜๊ฒŒ ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ํƒ์ƒ‰ํ•˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค.
  • ๋‹ต์•ˆ ์ œ์ถœ์„ ํ™•์ธํ•ด๋ณด๋‹ˆ ์ด์ƒํ•œ ๋ชจ๋“ˆ์ด import ๋˜์–ด์žˆ์–ด์„œ ์‚ญ์ œํ•˜๊ณ  ๋‹ค์‹œ ์ œ์ถœํ–ˆ๋‹ค.

728x90

'CodingTest > Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Lv.2 : ํŠœํ”Œ  (0) 2022.09.12
BOJ_1548 : ๋ถ€๋ถ„ ์‚ผ๊ฐ ์ˆ˜์—ด  (0) 2022.09.11
BOJ_14620 : ๊ฝƒ๊ธธ  (0) 2022.09.10
BOJ_1037 : ์•ฝ์ˆ˜  (0) 2022.09.09
BOJ_4101 : ํฌ๋ƒ?  (0) 2022.09.09