ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [๋ฐฑ์ค€] 2422 ํ•œ์œค์ •์ด ์ดํƒˆ๋ฆฌ์•„์— ๊ฐ€์„œ ์•„์ด์Šคํฌ๋ฆผ์„ ์‚ฌ๋จน๋Š”๋ฐ with Python
    PS 2022. 2. 13. 23:35
    728x90
    ๋ฐ˜์‘ํ˜•

    ๐Ÿ“Œ BOJ 2422 ํ•œ์œค์ •์ด ์ดํƒˆ๋ฆฌ์•„์— ๊ฐ€์„œ ์•„์ด์Šคํฌ๋ฆผ์„ ์‚ฌ๋จน๋Š”๋ฐ

    ๐Ÿ’ก ์กฐ๊ฑด

    1. ์•„์ด์Šคํฌ๋ฆผ ๊ฐ€๊ฒŒ์—๋Š” N์ข…๋ฅ˜์˜ ์•„์ด์Šคํฌ๋ฆผ์ด ์žˆ๋‹ค.
      ๋ชจ๋“  ์•„์ด์Šคํฌ๋ฆผ์€ 1๋ถ€ํ„ฐ N๊นŒ์ง€ ๋ฒˆํ˜ธ๊ฐ€ ๋งค๊ฒจ์ ธ์žˆ๋‹ค.
      ์–ด๋–ค ์ข…๋ฅ˜์˜ ์•„์ด์Šคํฌ๋ฆผ์„ ํ•จ๊ป˜๋จน์œผ๋ฉด, ๋ง›์ด ์•„์ฃผ ํ˜•ํŽธ์—†์–ด์ง„๋‹ค.

    2. ์ •์ˆ˜ N๊ณผ M์ด ์ฃผ์–ด์ง„๋‹ค. (1 โ‰ค N โ‰ค 200, 0 โ‰ค M โ‰ค 10,000)
      N์€ ์•„์ด์Šคํฌ๋ฆผ ์ข…๋ฅ˜์˜ ์ˆ˜์ด๊ณ , M์€ ์„ž์–ด๋จน์œผ๋ฉด ์•ˆ ๋˜๋Š” ์กฐํ•ฉ์˜ ๊ฐœ์ˆ˜์ด๋‹ค.

    3. ๊ฐ™์€ ์กฐํ•ฉ์€ ๋‘ ๋ฒˆ ์ด์ƒ ๋‚˜์˜ค์ง€ ์•Š๋Š”๋‹ค.

    4. ๋ธŒ๋ฃจํŠธํฌ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜, ๊ทธ๋ž˜ํ”„ ์ด๋ก ์œ ํ˜•์˜ ๋ฌธ์ œ

    ๐Ÿ–ฅ ์†Œ์Šค ์ฝ”๋“œ

    from sys import stdin
    from itertools import combinations
    
    n, m = map(int, stdin.readline().split())
    ice_cream = set(x for x in range(1, n + 1))
    nope = {x: set() for x in range(1, n + 1)}
    
    for _ in range(m):
        a, b = map(int, stdin.readline().split())
        nope[a].add(b)
        nope[b].add(a)
    
    
    res = 0
    for comb in list(set(combinations(ice_cream, 3))):
        if comb[1] not in nope[comb[0]] 
        and comb[2] not in nope[comb[0]] 
        and comb[1] not in nope[comb[2]]:
            res += 1
    
    print(res)

    ๐Ÿ”– ์˜ˆ์ œ ๋ฐ ์‹คํ–‰๊ฒฐ๊ณผ

    ์˜ˆ์ œ

    5 3
    1 2
    3 4
    1 3

    ์‹คํ–‰๊ฒฐ๊ณผ

    3

    โŒจ๏ธ ๋ฌธ์ œ ํ’€์ด

    1. ์ €๋Š” ๋ธŒ๋ฃจํŠธํฌ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ณด๋‹ค ๊ทธ๋ž˜ํ”„ ์ด๋ก ์œผ๋กœ ํ’€์ดํ•˜๋Š”๊ฒŒ ์‰ฌ์› ์Šต๋‹ˆ๋‹ค.

    2. ๊ทธ๋ž˜ํ”„๋กœ ์‚ฌ์šฉํ•  nope dict ์ž๋ฃŒํ˜• ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
      ํ‚ค ๊ฐ’์€ ๊ฐ ์•„์ด์Šคํฌ๋ฆผ์˜ ๋ฒˆํ˜ธ์ด๋ฉฐ, value๋Š” set()์œผ๋กœ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
      ์•„์ด์Šคํฌ๋ฆผ์˜ ๋ฒˆํ˜ธ๊ฐ€ ๋งค๊ฒจ์ ธ ์žˆ๋Š” ice_cream set() ์ž๋ฃŒํ˜• ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

    3. ์„ž์ด๋ฉด ์•ˆ๋˜๋Š” ๊ฐ ์•„์ด์Šคํฌ๋ฆผ์˜ ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ค๋‹ˆ๋‹ค.
      a ์™€ b ๊ฐ€ ์„ž์ด๋ฉด ์•ˆ๋˜๋Š” ์กฐํ•ฉ์ด๋ผ๋ฉด, nope[a]์— b๋ฅผ ๋„ฃ์–ด์ฃผ๊ณ , nope[b]์— a ๋ฅผ ๋„ฃ์–ด์ค๋‹ˆ๋‹ค.

    4. 1๋ฒˆ๋ถ€ํ„ฐ N๋ฒˆ๊นŒ์ง€ ์•„์ด์Šคํฌ๋ฆผ์—์„œ ์„ธ๊ฐ€์ง€ ์กฐํ•ฉ์„ ์ฐพ์•„์•ผํ•˜๊ธฐ์—, combinations ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์กฐํ•ฉ์„ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค.
      ์ค‘๋ณต๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด์„œ set()์œผ๋กœ ๋‘˜๋Ÿฌ์‹ธ์ฃผ๊ณ  ์ˆœํšŒ๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

    5. ์กฐํ•ฉ์œผ๋กœ ์„ ํƒ๋œ ์„ธ ๊ฐœ์˜ ๋ฒˆํ˜ธ๋ฅผ ๊ฐ€์ง„ ์•„์ด์Šคํฌ๋ฆผ์„ nope ์ž๋ฃŒ๊ตฌ์กฐ์— ํ‚ค๊ฐ’์œผ๋กœ ๋„ฃ์—ˆ์„ ๋•Œ, ๋ฒˆํ˜ธ๊ฐ€ ํ•ด๋‹นํ•˜๋Š” ๊ณณ์— ์—†๋‹ค๋ฉด
      ์„ž์—ฌ๋„ ๋˜๋Š” ์กฐํ•ฉ์ด๊ธฐ์— ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•  res ๋ณ€์ˆ˜์— +1 ์„ ํ•ด์ค๋‹ˆ๋‹ค.
      dict ์ž๋ฃŒํ˜•์— ์„ž์ด๋ฉด ์•ˆ๋˜๋Š” ์กฐํ•ฉ์„ ์–‘๋ฐฉํ–ฅ์œผ๋กœ ์ €์žฅํ•ด๋‘์—ˆ๊ธฐ์—, nope[x] ์—์„œ x์˜ ๊ฐ’์€ ์†Œ์Šค์ฝ”๋“œ๋งˆ๋‹ค ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    6. res๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

    ๐Ÿ’พ ๋Š๋‚€์ 

    1. ํ•ด์‹œ๋งต ์ž๋ฃŒ๊ตฌ์กฐ(dict) ๋ฅผ ํ†ตํ•ด์„œ ๋ฌธ์ œํ•ด๊ฒฐ์„ ํ•  ๋•Œ ๊ธฐ๋ถ„์ด ์ข‹์Šต๋‹ˆ๋‹ค.
    2. ๋ธŒ๋ฃจํŠธํฌ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ผ๊ณ  ๋˜์–ด์žˆ๋Š”๋ฐ, ์‚ฌ์‹ค ๊ทธ๋ž˜ํ”„ ์ด๋ก  ๋ฌธ์ œ๋กœ ๋“ค์–ด๊ฐ€์•ผํ•˜๋Š”๊ฒŒ ์•„๋‹Œ๊ฐ€ ์‹ถ์Šต๋‹ˆ๋‹ค.
    ๋ฐ˜์‘ํ˜•

    ๋Œ“๊ธ€

Designed by Tistory.