Post

๐Ÿข ์Šคํ‚ฌํŠธ๋ฆฌ

1. ๋ฌธ์ œ ๋งํฌ

์Šคํ‚ฌํŠธ๋ฆฌ


2. ์ฝ”๋“œ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
"""
์Šคํ‚ฌํŠธ๋ฆฌ

๐Ÿ’› ๋ฌธ์ œ
์„ ํ–‰ ์Šคํ‚ฌ์ด๋ž€ ์–ด๋–ค ์Šคํ‚ฌ์„ ๋ฐฐ์šฐ๊ธฐ ์ „์— ๋จผ์ € ๋ฐฐ์›Œ์•ผ ํ•˜๋Š” ์Šคํ‚ฌ์„ ๋œปํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์„ ํ–‰ ์Šคํ‚ฌ ์ˆœ์„œ๊ฐ€ ์ŠคํŒŒํฌ โ†’ ๋ผ์ดํŠธ๋‹ ๋ณผํŠธ โ†’ ์ฌ๋”์ผ๋•Œ,
์ฌ๋”๋ฅผ ๋ฐฐ์šฐ๋ ค๋ฉด ๋จผ์ € ๋ผ์ดํŠธ๋‹ ๋ณผํŠธ๋ฅผ ๋ฐฐ์›Œ์•ผ ํ•˜๊ณ ,
๋ผ์ดํŠธ๋‹ ๋ณผํŠธ๋ฅผ ๋ฐฐ์šฐ๋ ค๋ฉด ๋จผ์ € ์ŠคํŒŒํฌ๋ฅผ ๋ฐฐ์›Œ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์œ„ ์ˆœ์„œ์— ์—†๋Š” ๋‹ค๋ฅธ ์Šคํ‚ฌ(ํž๋ง ๋“ฑ)์€ ์ˆœ์„œ์— ์ƒ๊ด€์—†์ด ๋ฐฐ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ ์ŠคํŒŒํฌ โ†’ ํž๋ง โ†’ ๋ผ์ดํŠธ๋‹ ๋ณผํŠธ โ†’ ์ฌ๋”์™€ ๊ฐ™์€ ์Šคํ‚ฌํŠธ๋ฆฌ๋Š” ๊ฐ€๋Šฅํ•˜์ง€๋งŒ,
์ฌ๋” โ†’ ์ŠคํŒŒํฌ๋‚˜ ๋ผ์ดํŠธ๋‹ ๋ณผํŠธ โ†’ ์ŠคํŒŒํฌ โ†’ ํž๋ง โ†’ ์ฌ๋”์™€ ๊ฐ™์€ ์Šคํ‚ฌํŠธ๋ฆฌ๋Š” ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์„ ํ–‰ ์Šคํ‚ฌ ์ˆœ์„œ skill๊ณผ ์œ ์ €๋“ค์ด ๋งŒ๋“  ์Šคํ‚ฌํŠธ๋ฆฌ1๋ฅผ ๋‹ด์€ ๋ฐฐ์—ด skill_trees๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ,
๊ฐ€๋Šฅํ•œ ์Šคํ‚ฌํŠธ๋ฆฌ ๊ฐœ์ˆ˜๋ฅผ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

๐Ÿงก ์ œํ•œ ์‚ฌํ•ญ
์Šคํ‚ฌ์€ ์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž๋กœ ํ‘œ๊ธฐํ•˜๋ฉฐ, ๋ชจ๋“  ๋ฌธ์ž์—ด์€ ์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
์Šคํ‚ฌ ์ˆœ์„œ์™€ ์Šคํ‚ฌํŠธ๋ฆฌ๋Š” ๋ฌธ์ž์—ด๋กœ ํ‘œ๊ธฐํ•ฉ๋‹ˆ๋‹ค.
    ์˜ˆ๋ฅผ ๋“ค์–ด, C โ†’ B โ†’ D ๋ผ๋ฉด "CBD"๋กœ ํ‘œ๊ธฐํ•ฉ๋‹ˆ๋‹ค
์„ ํ–‰ ์Šคํ‚ฌ ์ˆœ์„œ skill์˜ ๊ธธ์ด๋Š” 1 ์ด์ƒ 26 ์ดํ•˜์ด๋ฉฐ, ์Šคํ‚ฌ์€ ์ค‘๋ณตํ•ด ์ฃผ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
skill_trees๋Š” ๊ธธ์ด 1 ์ด์ƒ 20 ์ดํ•˜์ธ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.
skill_trees์˜ ์›์†Œ๋Š” ์Šคํ‚ฌ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.
    skill_trees์˜ ์›์†Œ๋Š” ๊ธธ์ด๊ฐ€ 2 ์ด์ƒ 26 ์ดํ•˜์ธ ๋ฌธ์ž์—ด์ด๋ฉฐ, ์Šคํ‚ฌ์ด ์ค‘๋ณตํ•ด ์ฃผ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๐Ÿ’š ์ž…์ถœ๋ ฅ
skill	skill_trees	                        return
"CBD"	["BACDE", "CBADF", "AECB", "BDA"]	2
"""

from collections import deque

def solution(skill, skill_trees):
    answer = 0

    for i in skill_trees:
				# ์Šคํ‚ฌํŠธ๋ฆฌ(skill)๋ฅผ ํ์— ๋„ฃ๊ณ , ํ•˜๋‚˜์”ฉ ๋ฝ‘๋Š”๋‹ค
        good_skill = deque(skill)

        for j in i :
            # ์„ ํ–‰ ์Šคํ‚ฌ์— ํฌํ•จ๋œ๋‹ค๋ฉด
            if j in skill :
                if j != good_skill.popleft() :
                    break
        else :
            answer += 1

    return answer


  • ์ •ํ™•์„ฑ

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
      ์ •ํ™•์„ฑ ํ…Œ์ŠคํŠธ
      ํ…Œ์ŠคํŠธ 1 ใ€‰ ํ†ต๊ณผ (0.00ms, 10.3MB)
      ํ…Œ์ŠคํŠธ 2 ใ€‰ ํ†ต๊ณผ (0.01ms, 10.1MB)
      ํ…Œ์ŠคํŠธ 3 ใ€‰ ํ†ต๊ณผ (0.01ms, 10.1MB)
      ํ…Œ์ŠคํŠธ 4 ใ€‰ ํ†ต๊ณผ (0.01ms, 10.1MB)
      ํ…Œ์ŠคํŠธ 5 ใ€‰ ํ†ต๊ณผ (0.01ms, 10.2MB)
      ํ…Œ์ŠคํŠธ 6 ใ€‰ ํ†ต๊ณผ (0.01ms, 10.1MB)
      ํ…Œ์ŠคํŠธ 7 ใ€‰ ํ†ต๊ณผ (0.01ms, 10.2MB)
      ํ…Œ์ŠคํŠธ 8 ใ€‰ ํ†ต๊ณผ (0.01ms, 10.2MB)
      ํ…Œ์ŠคํŠธ 9 ใ€‰ ํ†ต๊ณผ (0.01ms, 10.1MB)
      ํ…Œ์ŠคํŠธ 10 ใ€‰ ํ†ต๊ณผ (0.01ms, 10.1MB)
      ํ…Œ์ŠคํŠธ 11 ใ€‰ ํ†ต๊ณผ (0.01ms, 10.2MB)
      ํ…Œ์ŠคํŠธ 12 ใ€‰ ํ†ต๊ณผ (0.01ms, 10.2MB)
      ํ…Œ์ŠคํŠธ 13 ใ€‰ ํ†ต๊ณผ (0.01ms, 10.2MB)
      ํ…Œ์ŠคํŠธ 14 ใ€‰ ํ†ต๊ณผ (0.01ms, 10.2MB)
      ์ฑ„์  ๊ฒฐ๊ณผ
      ์ •ํ™•์„ฑ: 100.0
      ํ•ฉ๊ณ„: 100.0 / 100.0
    


3. ํ•ด์„ค

  • ๊ฒ€์ฆ์ด ํ•„์š”ํ•œ ์Šคํ‚ฌํŠธ๋ฆฌ๋ฅผ ํ•˜๋‚˜์”ฉ ํ™•์ธํ•จ
  • ํ ๊ฐ€์žฅ ์•ž์— ์žˆ์œผ๋ฉด ๋ฝ‘๊ณ 
  • ํ ๊ฐ€์žฅ ์•ž์— ์—†๋‹ค๋ฉด ๋ฐฐ์šฐ์ง€ ๋ชปํ•œ๊ฑฐ๋ผ ์œ ํšจํ•˜์ง€ ์•Š์Œ
This post is licensed under CC BY 4.0 by the author.