๐Ÿ’ป์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ฌธ์ œ ํ’€์ด1

์ง€๋ฏผ์„œยท2023๋…„ 3์›” 10์ผ
0

coding test

๋ชฉ๋ก ๋ณด๊ธฐ
1/30

Chapter4. ๋ฌธ์ž์—ด

[๋ฌธ์ œ9] ์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ-Level2

์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ๋Š” ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด์„ ๊ฐ€์ง€๊ณ  ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ € ๋ฌธ์ž์—ด์—์„œ ๊ฐ™์€ ์•ŒํŒŒ๋ฒณ์ด 2๊ฐœ ๋ถ™์–ด์žˆ๋Š” ์ง์„ ์ฐพ์Šต๋‹ˆ๋‹ค. ๊ทธ๋‹ค์Œ ๋‘˜์„ ์ œ๊ฑฐํ•œ ๋’ค, ์•ž๋’ค๋กœ ๋ฌธ์ž์—ด์„ ์ด์–ด ๋ถ™์ž…๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•ด์„œ ๋ฌธ์ž์—ด์„ ๋ชจ๋‘ ์ œ๊ฑฐํ•œ๋‹ค๋ฉด ์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ๊ฐ€ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด S๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”. ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด 1์„, ์•„๋‹ ๊ฒฝ์šฐ 0์„ ๋ฆฌํ„ดํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋ฌธ์ž์—ด S = baabaa๋ผ๋ฉด b aa baa -> bb aa -> aa -> ์˜ ์ˆœ์„œ๋กœ ๋ฌธ์ž์—ด์„ ๋ชจ๋‘ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ 1์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

  • ๊ฐ™์€ ์•ŒํŒŒ๋ฒณ 2๊ฐœ ์ฐพ์•„์„œ ์ œ๊ฑฐํ•˜๊ธฐ
  • ์ œ๊ฑฐ๋œ ๋ฌธ์ž์—ด ํ•ฉ์น˜๊ณ  ์›๋ž˜ ๋ฌธ์ž์—ด์— ๋ฎ์–ด์“ฐ๊ธฐ
  • ๋‚จ์€ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๊ฐ€ 1 ๋ฏธ๋งŒ์ด ๋  ๋•Œ๊นŒ์ง€ 1~2๋ฒˆ ๋ฐ˜๋ณต
def solution(S):
	while len(s) > 1:
    	s = list(S)
        for i in range(len(s) - 1):
        	if s[i] == s[i+1]: s[i] = s[i+1] = ''
            
        new_s = ''.join(s)
        if len(s) == len(new_s) : break
        s = new_s
        
 return 1 if len(s) == 0 else 0
  • ๋ฐ›์€ ๋ฌธ์ž์—ด์„ for๋ฌธ์œผ๋กœ 1๊ธ€์ž์”ฉ ์ฝ๊ธฐ
  • ๋ฐฐ์—ด์— ์•ŒํŒŒ๋ฒณ ํ•˜๋‚˜์”ฉ ๋„ฃ๊ณ  ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ์•ŒํŒŒ๋ฒณ๊ณผ ํ˜„์žฌ ์ˆœํšŒ ์ค‘์ธ ์•ŒํŒŒ๋ฒณ์ด ๊ฐ™๋‹ค๋ฉด ๋ฐฐ์—ด์—์„œ ํ•ด๋‹น ์š”์†Œ ์ œ๊ฑฐํ•˜๊ธฐ
  • ๋ชจ๋“  ๋ฌธ์ž์—ด ๋Œ์•˜์„ ๋•Œ ๋ฑ…๋ ค์— ๊ฐ’์ด ์—†๋‹ค๋ฉด ๋ชจ๋‘ ์ง์ง€์€ ๊ฒƒ, ๋‚จ์•„ ์žˆ๋‹ค๋ฉด ๋ชจ๋‘ ์ง์ง“์ง€ ๋ชปํ•œ ๊ฒƒ.
def solution(s):
	stack = []
    for case in s:
    	if stack and stack[-1] == case: stack.pop()
        else: stack.append(case)
	return 0 if stack else 1
profile
๐Ÿ’ป + ๐ŸŽฅ

0๊ฐœ์˜ ๋Œ“๊ธ€