๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐˜ผ๐™ก๐™œ๐™ค๐™ง๐™ž๐™ฉ๐™๐™ข/๐™‹๐™ง๐™ค๐™œ๐™ง๐™–๐™ข๐™ข๐™š๐™ง๐™จ

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Summer/Winter Coding(~2018) '์Šคํ‚ฌํŠธ๋ฆฌ' ํŒŒ์ด์ฌ ํ’€์ด

by beomcoder 2023. 3. 1.
728x90
๋ฐ˜์‘ํ˜•
 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

"""
์„ ํ–‰ ์Šคํ‚ฌ์ด๋ž€ ์–ด๋–ค ์Šคํ‚ฌ์„ ๋ฐฐ์šฐ๊ธฐ ์ „์— ๋จผ์ € ๋ฐฐ์›Œ์•ผ ํ•˜๋Š” ์Šคํ‚ฌ์„ ๋œปํ•ฉ๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด ์„ ํ–‰ ์Šคํ‚ฌ ์ˆœ์„œ๊ฐ€ ์ŠคํŒŒํฌ → ๋ผ์ดํŠธ๋‹ ๋ณผํŠธ → ์ฌ๋”์ผ๋•Œ, 
์ฌ๋”๋ฅผ ๋ฐฐ์šฐ๋ ค๋ฉด ๋จผ์ € ๋ผ์ดํŠธ๋‹ ๋ณผํŠธ๋ฅผ ๋ฐฐ์›Œ์•ผ ํ•˜๊ณ , 
๋ผ์ดํŠธ๋‹ ๋ณผํŠธ๋ฅผ ๋ฐฐ์šฐ๋ ค๋ฉด ๋จผ์ € ์ŠคํŒŒํฌ๋ฅผ ๋ฐฐ์›Œ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

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

import re 

def solution(skill, skill_trees):
    answer = 0
    for s in skill_trees:
        s = ''.join(re.findall(f'[{skill}]', s)) # 6 line
        answer += int(s == skill[:len(s)]) # 7 line
    return answer

"""
- 6 line
re๋ชจ๋“ˆ์˜ findall์„ ์‚ฌ์šฉํ–ˆ๋‹ค. re.findall(a,b)์ด๋ฉด b์— ์žˆ๋Š” a๋ฅผ ์ฐพ์•„์„œ ๋ฆฌ์ŠคํŠธ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.
('a', 'ab') ๋ผ๋ฉด ['a']๋กœ ๋ฐ˜ํ™˜๋œ๋‹ค. ์—ฌ๊ธฐ์„œ ์ •๊ทœ์‹์„ ์‚ฌ์šฉํ•ด์„œ ์ฐพ์•„์ฃผ์—ˆ๋Š”๋ฐ
f'[{skill}]'์€ []๋Š” ๋ฌธ์ž ์ง‘ํ•ฉ, ๊ด„ํ˜ธ๋กœ ๋ฌถ์ธ ๋ฌธ์ž ์ค‘ ํ•˜๋‚˜๋ฅผ ์ฐพ๋Š”๋‹ค.
skill์ด 'ab'๋ผ๋ฉด [ab]๊ฐ€ ๋˜๊ณ  (f'[{skill}]','acbd')์ด๋ผ๋ฉด ['a','b']๊ฐ€ ๋œ๋‹ค.
์ด์ œ ๊ทธ๋ ‡๊ฒŒ ์ฐพ์€ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋‹ค์‹œ ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.

- 7 line
๊ทธ๋ฆฌ๊ณ  ์Šคํ‚ฌ์„ ๋ฌด์กฐ๊ฑด ์ฐจ๋ก€๋Œ€๋กœ ๋ฐฐ์›Œ์•ผํ•˜๊ธฐ๋•Œ๋ฌธ์— s์˜ ๋ฌธ์ž์—ด ๊ธธ์ด๋งŒํผ ์ž˜๋ผ์„œ
๊ฐ™์€์ง€ ๋น„๊ตํ•˜๋ฉด๋œ๋‹ค.
"""
728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€