๋ฌธ์ ์ค๋ช
์นด์นด์ค์ ์ ์ ๊ฐ๋ฐ์๋ก ์ ์ฌํ "์ฝ"์ ์ ๋ฐฐ ๊ฐ๋ฐ์๋ก๋ถํฐ ๊ฐ๋ฐ์ญ๋ ๊ฐํ๋ฅผ ์ํด ๋ค๋ฅธ ๊ฐ๋ฐ์๊ฐ ์์ฑํ ์์ค ์ฝ๋๋ฅผ ๋ถ์ํ์ฌ ๋ฌธ์ ์ ์ ๋ฐ๊ฒฌํ๊ณ ์์ ํ๋ผ๋ ์ ๋ฌด ๊ณผ์ ๋ฅผ ๋ฐ์์ต๋๋ค. ์์ค๋ฅผ ์ปดํ์ผํ์ฌ ๋ก๊ทธ๋ฅผ ๋ณด๋ ๋๋ถ๋ถ ์์ค ์ฝ๋ ๋ด ์์ฑ๋ ๊ดํธ๊ฐ ๊ฐ์๋ ๋ง์ง๋ง ์ง์ด ๋ง์ง ์์ ํํ๋ก ์์ฑ๋์ด ์ค๋ฅ๊ฐ ๋๋ ๊ฒ์ ์๊ฒ ๋์์ต๋๋ค. ์์ ํด์ผ ํ ์์ค ํ์ผ์ด ๋๋ฌด ๋ง์์ ๊ณ ๋ฏผํ๋ "์ฝ"์ ์์ค ์ฝ๋์ ์์ฑ๋ ๋ชจ๋ ๊ดํธ๋ฅผ ๋ฝ์์ ์ฌ๋ฐ๋ฅธ ์์๋๋ก ๋ฐฐ์น๋ ๊ดํธ ๋ฌธ์์ด์ ์๋ ค์ฃผ๋ ํ๋ก๊ทธ๋จ์ ๋ค์๊ณผ ๊ฐ์ด ๊ฐ๋ฐํ๋ ค๊ณ ํฉ๋๋ค.
์ฉ์ด์ ์
'(' ์ ')' ๋ก๋ง ์ด๋ฃจ์ด์ง ๋ฌธ์์ด์ด ์์ ๊ฒฝ์ฐ, '(' ์ ๊ฐ์์ ')' ์ ๊ฐ์๊ฐ ๊ฐ๋ค๋ฉด ์ด๋ฅผ ๊ท ํ์กํ ๊ดํธ ๋ฌธ์์ด์ด๋ผ๊ณ ๋ถ๋ฆ
๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์ '('์ ')'์ ๊ดํธ์ ์ง๋ ๋ชจ๋ ๋ง์ ๊ฒฝ์ฐ์๋ ์ด๋ฅผ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ด๋ผ๊ณ ๋ถ๋ฆ
๋๋ค.
์๋ฅผ ๋ค์ด, "(()))("์ ๊ฐ์ ๋ฌธ์์ด์ "๊ท ํ์กํ ๊ดํธ ๋ฌธ์์ด" ์ด์ง๋ง "์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด"์ ์๋๋๋ค.
๋ฐ๋ฉด์ "(())()"์ ๊ฐ์ ๋ฌธ์์ด์ "๊ท ํ์กํ ๊ดํธ ๋ฌธ์์ด" ์ด๋ฉด์ ๋์์ "์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด" ์
๋๋ค.
'(' ์ ')' ๋ก๋ง ์ด๋ฃจ์ด์ง ๋ฌธ์์ด w๊ฐ "๊ท ํ์กํ ๊ดํธ ๋ฌธ์์ด" ์ด๋ผ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๊ณผ์ ์ ํตํด "์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด"๋ก ๋ณํํ ์ ์์ต๋๋ค.
1. ์
๋ ฅ์ด ๋น ๋ฌธ์์ด์ธ ๊ฒฝ์ฐ, ๋น ๋ฌธ์์ด์ ๋ฐํํฉ๋๋ค. 2. ๋ฌธ์์ด w๋ฅผ ๋ "๊ท ํ์กํ ๊ดํธ ๋ฌธ์์ด" u, v๋ก ๋ถ๋ฆฌํฉ๋๋ค. ๋จ, u๋ "๊ท ํ์กํ ๊ดํธ ๋ฌธ์์ด"๋ก ๋ ์ด์ ๋ถ๋ฆฌํ ์ ์์ด์ผ ํ๋ฉฐ, v๋ ๋น ๋ฌธ์์ด์ด ๋ ์ ์์ต๋๋ค. 3. ๋ฌธ์์ด u๊ฐ "์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด" ์ด๋ผ๋ฉด ๋ฌธ์์ด v์ ๋ํด 1๋จ๊ณ๋ถํฐ ๋ค์ ์ํํฉ๋๋ค. 3-1. ์ํํ ๊ฒฐ๊ณผ ๋ฌธ์์ด์ u์ ์ด์ด ๋ถ์ธ ํ ๋ฐํํฉ๋๋ค. 4. ๋ฌธ์์ด u๊ฐ "์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด"์ด ์๋๋ผ๋ฉด ์๋ ๊ณผ์ ์ ์ํํฉ๋๋ค. 4-1. ๋น ๋ฌธ์์ด์ ์ฒซ ๋ฒ์งธ ๋ฌธ์๋ก '('๋ฅผ ๋ถ์ ๋๋ค. 4-2. ๋ฌธ์์ด v์ ๋ํด 1๋จ๊ณ๋ถํฐ ์ฌ๊ท์ ์ผ๋ก ์ํํ ๊ฒฐ๊ณผ ๋ฌธ์์ด์ ์ด์ด ๋ถ์ ๋๋ค. 4-3. ')'๋ฅผ ๋ค์ ๋ถ์ ๋๋ค. 4-4. u์ ์ฒซ ๋ฒ์งธ์ ๋ง์ง๋ง ๋ฌธ์๋ฅผ ์ ๊ฑฐํ๊ณ , ๋๋จธ์ง ๋ฌธ์์ด์ ๊ดํธ ๋ฐฉํฅ์ ๋ค์ง์ด์ ๋ค์ ๋ถ์ ๋๋ค. 4-5. ์์ฑ๋ ๋ฌธ์์ด์ ๋ฐํํฉ๋๋ค. |
"๊ท ํ์กํ ๊ดํธ ๋ฌธ์์ด" p๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์ฃผ์ด์ง ์๊ณ ๋ฆฌ์ฆ์ ์ํํด "์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด"๋ก ๋ณํํ ๊ฒฐ๊ณผ๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.
๋งค๊ฐ๋ณ์ ์ค๋ช
- p๋ '(' ์ ')' ๋ก๋ง ์ด๋ฃจ์ด์ง ๋ฌธ์์ด์ด๋ฉฐ ๊ธธ์ด๋ 2 ์ด์ 1,000 ์ดํ์ธ ์ง์์ ๋๋ค.
- ๋ฌธ์์ด p๋ฅผ ์ด๋ฃจ๋ '(' ์ ')' ์ ๊ฐ์๋ ํญ์ ๊ฐ์ต๋๋ค.
- ๋ง์ฝ p๊ฐ ์ด๋ฏธ "์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด"์ด๋ผ๋ฉด ๊ทธ๋๋ก return ํ๋ฉด ๋ฉ๋๋ค.
์ ์ถ๋ ฅ ์
p | result |
"(()())()" | "(()())()" |
")(" | "()" |
"()))((()" | "()(())()" |
์ ์ถ๋ ฅ ์ ์ค๋ช
์
์ถ๋ ฅ ์ #1
์ด๋ฏธ "์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด" ์
๋๋ค.
์ ์ถ๋ ฅ ์ #2
- ๋ ๋ฌธ์์ด u, v๋ก ๋ถ๋ฆฌํฉ๋๋ค.
- u = ")("
- v = ""
- u๊ฐ "์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด"์ด ์๋๋ฏ๋ก ๋ค์๊ณผ ๊ฐ์ด ์๋ก์ด ๋ฌธ์์ด์ ๋ง๋ญ๋๋ค.
- v์ ๋ํด 1๋จ๊ณ๋ถํฐ ์ฌ๊ท์ ์ผ๋ก ์ํํ๋ฉด ๋น ๋ฌธ์์ด์ด ๋ฐํ๋ฉ๋๋ค.
- u์ ์๋ค ๋ฌธ์๋ฅผ ์ ๊ฑฐํ๊ณ , ๋๋จธ์ง ๋ฌธ์์ ๊ดํธ ๋ฐฉํฅ์ ๋ค์ง์ผ๋ฉด ""์ด ๋ฉ๋๋ค.
- ๋ฐ๋ผ์ ์์ฑ๋๋ ๋ฌธ์์ด์ "(" + "" + ")" + ""์ด๋ฉฐ, ์ต์ข ์ ์ผ๋ก "()"๋ก ๋ณํ๋ฉ๋๋ค.
์ ์ถ๋ ฅ ์ #3
- ๋ ๋ฌธ์์ด u, v๋ก ๋ถ๋ฆฌํฉ๋๋ค.
- u = "()"
- v = "))((()"
- ๋ฌธ์์ด u๊ฐ "์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด"์ด๋ฏ๋ก ๊ทธ๋๋ก ๋๊ณ , v์ ๋ํด ์ฌ๊ท์ ์ผ๋ก ์ํํฉ๋๋ค.
- ๋ค์ ๋ ๋ฌธ์์ด u, v๋ก ๋ถ๋ฆฌํฉ๋๋ค.
- u = "))(("
- v = "()"
- u๊ฐ "์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด"์ด ์๋๋ฏ๋ก ๋ค์๊ณผ ๊ฐ์ด ์๋ก์ด ๋ฌธ์์ด์ ๋ง๋ญ๋๋ค.
- v์ ๋ํด 1๋จ๊ณ๋ถํฐ ์ฌ๊ท์ ์ผ๋ก ์ํํ๋ฉด "()"์ด ๋ฐํ๋ฉ๋๋ค.
- u์ ์๋ค ๋ฌธ์๋ฅผ ์ ๊ฑฐํ๊ณ , ๋๋จธ์ง ๋ฌธ์์ ๊ดํธ ๋ฐฉํฅ์ ๋ค์ง์ผ๋ฉด "()"์ด ๋ฉ๋๋ค.
- ๋ฐ๋ผ์ ์์ฑ๋๋ ๋ฌธ์์ด์ "(" + "()" + ")" + "()"์ด๋ฉฐ, ์ต์ข ์ ์ผ๋ก "(())()"๋ฅผ ๋ฐํํฉ๋๋ค.
- ์ฒ์์ ๊ทธ๋๋ก ๋ ๋ฌธ์์ด์ ๋ฐํ๋ ๋ฌธ์์ด์ ์ด์ด ๋ถ์ด๋ฉด "()" + "(())()" = "()(())()"๊ฐ ๋ฉ๋๋ค.
ํ์ด
- ๋ณ๋ก ์ด๋ ต์ง ์๋ค๊ณ ์๊ฐํ๋ค๊ฐ ์๊ฐ ์์ฐฝ ์ก์๋จน์ ๋ถ๋ถ์ด...
- ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ด ์๋ ๋ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ด... ๋๋ฌด ์์ํ๋ฐ ๋ณ๋ก ์ด๋ ต์ง๋ ์๊ณ , ๊ทธ๋์ ๋์ถฉ ์งฐ๋๋ฐ ์๋์ ์์ฒญ ์ฝ์งํ๋ค.
- ๊ดํธ๋ฌธ์๋ฅผ ์ฒ์์ ๋ฑ ๋์ค๋ฉด ๋ฐ๋ก ์๋ผ์ผ ๋๋๋ฐ, ๋ ์ข ๋ ํฌ๊ฒ ๋จน๊ณ ์ถ์ด์ ใ ใ ใ
- ํฌ๊ฒ ์๋ผ์ ๊ณ์ ์ค๋ฅ๊ฐ ๋ฌ์๋ค. ๊ทธ๋ฅ ์ฒ์๋ถํฐ ์ง ๋ง์ผ๋ฉด ๋ฐ๋ก ๋ฐ๋ก ์๋ผ์ ์ฌ๊ทํธ์ถ๋ก ๋ณด๋ด๋ฒ๋ ค์ผ ํ๋ค.
- ์ํผ ์๊ฐ ๋๋ฌด ๋ญ๋นํ ๋ฏ...
from collections import Counter
def validate_bracket(s):
stack = []
for i in range(len(s)):
if s[i] == "(":
stack.append(s[i])
else:
try:
stack.pop()
except:
return False
if len(stack) == 0:
return True
else:
return False
def solution(p):
answer = ''
def bracket_converter(w):
if w == "": return w
u, v = "", ""
for i in range(2,len(w),2):
cnt_w = Counter(list(w[0:i]))
if cnt_w["("] == cnt_w[")"]:
u, v = w[0:i], w[i:len(w)]
break # ์. ๋ ๊ธธ๊ฒ ์๋ฅด๋ฉด ์๋๋ ๊ฑฐ์๋ค.
if u == "": u = w
if validate_bracket(u) == False:
u = u[1:len(u)-1]
uu = ""
for i in range(len(u)):
if u[i] == "(":
uu += ")"
else:
uu += "("
return "(" + bracket_converter(v) + ")" + uu
else:
return u + bracket_converter(v)
return bracket_converter(p)
- ๋ฌธ์์ด ์ฒ๋ฆฌ๋ ์ญ์ ํ์ด์ฌ์ด ์ฝ๋ค.
- C++๋ก ์งฐ์ผ๋ฉด ๊ณ ์ํ์ ๋ฏ...
์ ํ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (0.01ms, 10.2MB)
ํ
์คํธ 2 ใ ํต๊ณผ (0.03ms, 10.3MB)
ํ
์คํธ 3 ใ ํต๊ณผ (0.03ms, 10.2MB)
ํ
์คํธ 4 ใ ํต๊ณผ (0.06ms, 10.3MB)
ํ
์คํธ 5 ใ ํต๊ณผ (0.04ms, 10.2MB)
ํ
์คํธ 6 ใ ํต๊ณผ (0.04ms, 10.2MB)
ํ
์คํธ 7 ใ ํต๊ณผ (0.04ms, 10.3MB)
ํ
์คํธ 8 ใ ํต๊ณผ (0.04ms, 10.3MB)
ํ
์คํธ 9 ใ ํต๊ณผ (0.05ms, 10.3MB)
ํ
์คํธ 10 ใ ํต๊ณผ (0.05ms, 10.3MB)
ํ
์คํธ 11 ใ ํต๊ณผ (0.09ms, 10.2MB)
ํ
์คํธ 12 ใ ํต๊ณผ (0.14ms, 10.3MB)
ํ
์คํธ 13 ใ ํต๊ณผ (0.16ms, 10.4MB)
ํ
์คํธ 14 ใ ํต๊ณผ (0.22ms, 10.2MB)
ํ
์คํธ 15 ใ ํต๊ณผ (0.26ms, 10.4MB)
ํ
์คํธ 16 ใ ํต๊ณผ (0.65ms, 10.4MB)
ํ
์คํธ 17 ใ ํต๊ณผ (2.18ms, 10.3MB)
ํ
์คํธ 18 ใ ํต๊ณผ (2.54ms, 10.4MB)
ํ
์คํธ 19 ใ ํต๊ณผ (1.81ms, 10.3MB)
ํ
์คํธ 20 ใ ํต๊ณผ (2.03ms, 10.3MB)
ํ
์คํธ 21 ใ ํต๊ณผ (5.64ms, 10.3MB)
ํ
์คํธ 22 ใ ํต๊ณผ (1.16ms, 10.2MB)
ํ
์คํธ 23 ใ ํต๊ณผ (0.88ms, 10.2MB)
ํ
์คํธ 24 ใ ํต๊ณผ (1.79ms, 10.3MB)
ํ
์คํธ 25 ใ ํต๊ณผ (4.51ms, 10.3MB)
- ๊ณ ์์ ์ฝ๋...
- ์ด๊ฒ ๋ญ๋? ใ ใ ใ
def solution(p):
if p=='': return p
r=True; c=0
for i in range(len(p)):
if p[i]=='(': c-=1
else: c+=1
if c>0: r=False
if c==0:
if r:
return p[:i+1]+solution(p[i+1:])
else:
return '('+solution(p[i+1:])+')'+''.join(list(map(lambda x:'(' if x==')' else ')',p[1:i]) ))
- ๋ฏธ์ณค์ต๋๊น? ํด๋จผ?
- ์๋ ํด๋จผ์ ๋๊น? ํด๋จผ?
์ ํ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (0.01ms, 10.2MB)
ํ
์คํธ 2 ใ ํต๊ณผ (0.01ms, 10.4MB)
ํ
์คํธ 3 ใ ํต๊ณผ (0.01ms, 10.2MB)
ํ
์คํธ 4 ใ ํต๊ณผ (0.01ms, 10.3MB)
ํ
์คํธ 5 ใ ํต๊ณผ (0.01ms, 10.2MB)
ํ
์คํธ 6 ใ ํต๊ณผ (0.01ms, 10.3MB)
ํ
์คํธ 7 ใ ํต๊ณผ (0.01ms, 10.2MB)
ํ
์คํธ 8 ใ ํต๊ณผ (0.01ms, 10.3MB)
ํ
์คํธ 9 ใ ํต๊ณผ (0.01ms, 10.2MB)
ํ
์คํธ 10 ใ ํต๊ณผ (0.01ms, 10.2MB)
ํ
์คํธ 11 ใ ํต๊ณผ (0.02ms, 10.2MB)
ํ
์คํธ 12 ใ ํต๊ณผ (0.05ms, 10.2MB)
ํ
์คํธ 13 ใ ํต๊ณผ (0.03ms, 10.2MB)
ํ
์คํธ 14 ใ ํต๊ณผ (0.06ms, 10.2MB)
ํ
์คํธ 15 ใ ํต๊ณผ (0.06ms, 10.3MB)
ํ
์คํธ 16 ใ ํต๊ณผ (0.13ms, 10.4MB)
ํ
์คํธ 17 ใ ํต๊ณผ (0.10ms, 10.3MB)
ํ
์คํธ 18 ใ ํต๊ณผ (0.15ms, 10.2MB)
ํ
์คํธ 19 ใ ํต๊ณผ (0.45ms, 10.2MB)
ํ
์คํธ 20 ใ ํต๊ณผ (0.20ms, 10.1MB)
ํ
์คํธ 21 ใ ํต๊ณผ (0.19ms, 10.2MB)
ํ
์คํธ 22 ใ ํต๊ณผ (0.10ms, 10.2MB)
ํ
์คํธ 23 ใ ํต๊ณผ (0.17ms, 10.2MB)
ํ
์คํธ 24 ใ ํต๊ณผ (0.06ms, 10.2MB)
ํ
์คํธ 25 ใ ํต๊ณผ (0.10ms, 10.2MB)
- ์ ์ฝ๋๋ฅผ ๋ณด๊ณ ์๊ดด๊ฐ์ ๋น ์ก๋ค.
'๊ฒ์ ํ๋ก๊ทธ๋๋ฐ > Python ํ๋ก๊ทธ๋๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค ๊ธฐ์ง๊ตญ ์ค์น Summer/Winter Coding(~2018) (1) | 2023.02.28 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค ์ซ์๊ฒ์ Summer/Winter Coding (~2018) (0) | 2023.02.28 |
ํ๋ก๊ทธ๋๋จธ์ค ์ฌ ์ฐ๊ฒฐํ๊ธฐ (0) | 2023.02.27 |
ํ๋ก๊ทธ๋๋จธ์ค ๋จ์์นด๋ฉ๋ผ ... ํ์๋ฒ (0) | 2023.02.27 |
ํ๋ก๊ทธ๋๋จธ์ค ์คํฌ ์ฒดํฌ ํ ์คํธ Level 3 ํ๋ฝ ใ ใ ใ (0) | 2023.02.27 |