๐ ๋ฌธ์ ๋งํฌ : Programmers kakao2020 ๊ดํธ ๋ณํ
- ์์งํ ์~์ฒญ ์ด๋ ค์ด ๋ฌธ์ ๋ ์๋๋ค ๋ค๋ง, ๋ ์ดํดํ๋๋ฐ ์ค๋ ค๊ฑธ๋ ธ๋ค ใ
- ๋ฌธ์ ์์ฒด๋ฅผ ์ดํดํ์ง๋ง๊ณ ์ํค๋๋๋ก ํ๋ฉด ํ๋ฆฌ๋ ๋ฌธ์ ์ด์ง๋ง ๋๋ง ๊ทธ๋ฐ๊ฑด์ง ๋ ๋ฌธ์ ์์ฒด๋ฅผ ์ดํดํ๋ ค๊ณ ํด์ ์ค๋ ๊ฑธ๋ฆฐ๊ฒ ๊ฐ๋ค.
- ๋ฌธ์ ๋ ๊ดํธ๊ฐ ๋ค์ด์ค๋ฉด ๋ฌธ์ ์์ ์ํ๋ ๋ฐฉ์๋๋ก ๊ดํธ๋ฅผ ๋ฐ๊พธ์ด ์ฃผ์ด์ผ ํ๋ ๋ฌธ์ ์ด๋ค.
from collections import deque
def check_correct(string):
stack = []
for st in string:
if st == '(':
stack.append(st)
else:
if not stack: return False
stack.pop()
if stack: return False
else: return True
def check_uv(string):
queue = deque(string)
left, right = 0, 0
u, v = '', ''
while queue:
char = queue.popleft()
u += char
if char == '(':
left += 1
else:
right += 1
if left == right:
break
v = ''.join(list(queue))
return u, v
def change_correct(string):
if string == '':
return ''
u, v = check_uv(string)
if check_correct(u):
return u + change_correct(v)
else:
return '(' + change_correct(v) + ')' + ''.join(list(map(lambda x:'(' if x==')' else ')', u[1:-1])))
def get_correct_parentheses(string):
if check_correct(string):
return string
else:
return change_correct(string)
- ๋ค๋ฅธ์ฌ๋ ํ์ด๋ฅผ ๋ณด๋ ๋ฉ์ธ ํจ์ ํ๋์์ ๋๋๋ ํ์ด๋ ์์๋ค ๊ทธ๊ฑธ ์ธ์ฉํด์ lambda ๋ถ๋ถ์ ๋๋ ๋ฐ๊พธ์ด ๋ดค๋ค.
ํ๋ก๊ทธ๋๋จธ์ค ํ์ด๋ฅผ ๋ณด๋ฉด ๊ฐํ์ด ๋์ค๊ฒ ํธ๋ ์ฌ๋๋ค, ํนํ python์ ๊ทนํ์ผ๋ก ์ค์ด๋ ์ฌ๋๋ค์ ๋ต์์ง๊ฐ ์๋ค.
์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถ ์ด๊ธฐ์๋ ์๊ดด๊ฐ์ด ๋ง์ด ๋ค์์ง๋ง, ๊ฐ์ธ์ ์ธ ์๊ฐ์ผ๋ก๋ ์ค์ด๋ ๊ฒ๋ ์์ฒญ ์ข์ง๋ง ๊ทธ๊ฑธ ๋ณด๊ณ ์๊ดด๊ฐ์ ๋๋ผ๊ธฐ ๋ณด๋ค๋ ๊ฐ์์ฑ์ด ์ข์ ์ ์์ ์ฝ๋๋ฅผ ์ค์ด๊ณ , ๋ด๊ฒ์ผ๋ก ๋ง๋ค์ ๋ผ๋ ์๊ฐ์ด ์ข์ ๊ฒ ๊ฐ๋ค.- ์ฌ๋ฌ ๋จ๊ณ๊ฐ ์๋ ๋ฌธ์ ์ฌ์ ํจ์๋ก ์ชผ๊ฐ์ ์ฌ๋ฌ ํจ์๋ก ์ชผ๊ฐ์์ผ๋ฉฐ
๋ฌธ์ ์ ๋์ค๋ '์ฌ๋ฐ๋ฅธ ๋ฌธ์' ๋ฅผ ์ฐพ๋ ํจ์์ queue๋ฅผ ์ด์ฉํ๋ ๋ถ๋ถ, ํ๋ณํ๋ ํจ์ ์ ๋๋ฅผ ์ ์ตํ๋์ผ ๊ฒ ๋ค.
๐ ์์ทจ๋ฐฉ๊ณผ, ๊ฐ๋ฒผ์ด ๋ ธํธ๋ถ, ์ง์ ๊ฑฐ์น์ฉ ๋ ธํธ๋ถ์ ์ฎ๊ฒจ๋ค๋๋ฉฐ ๋ชจ๋ ๊ฐ์ ๊ฐ๋ฐ ํ๊ฒฝ์ ๋ง์ถฐ์ฃผ๊ธฐ ์ํด์ ๋ชจ๋ ์ฝ๋๋ฅผ ๊น์ ์ฌ๋ฆฌ๊ณ ์์ผ๋ฉฐ, vscode์ค์ ๋๊ธฐํ๊น์ง ๊ฐ๋ฅํ extention์ ๋ฐ์ ์ฌ์ฉ์ค์ธ๋ฐ ๋๋ฌด ๋ง์กฑ์ค๋ฝ๋ค. ๋ํ, ์ธํฐํ๋ฆฌํฐ๋ conda์์ ๋ฐฑ์ ํ์์ผ๋ก ์ฌ๋ฆด ์ ์๋๊ฒ ๊ฐ๋ค. ์์ง conda์ docker๋ ์ต์ํ์ง ์์ ๋ง์ด ๋ง์ ธ๋ด์ผ๊ฒ ๋ค.
๐ 9 to 9๊ฐ ๋๋๊ณ ์ฌ์ฌํด์ programmers ์์ ์ ๋ต๋ฅ ๋์ ์์๋๋ก 3๋ ๋ฒจ๊น์ง ๋ค ํ์ด๋ณด๊ธฐ (์ด์ 2ํ์ด์ง ์ง์ ) ๋ฅผ ํ๊ณ ์๋๋ฐ ์ฒ์๋ณด๋ ๋ด์ฅํจ์๊ฐ ์์ด์ ๊ธฐ๋กํด ๋๋ ค๊ณ ํ๋ค.
๋ฌธ์ ๋งํฌ๋ ๐JadenCase ๋ฌธ์์ด ๋ง๋ค๊ธฐ
๐ก ๋ด ํ์ด
def solution(s): result = '' for i in range(1, len(s)): if s[i - 1] == ' ' and s[i].isalpha(): result += s[i].upper() else: result += s[i].lower() return s[0].upper() + result
๐ ๋ฌธ์ ์์ ํ๋๋๋ก ๊ทธ๋๋ก ํ์ด์ค ๊ฒ์ด๋ค.
์ด๊ฒ๋ ๊ต์ฅํ ๋ ์ฝ์ง๋ง
def solution(s):
return s.title()
๋ค๋ฅธ ์ฌ๋ ํ์ด์ ์ ๋ฐ ํ์ด๊ฐ ์์์ง๋ง ์ง๊ธ์ ์๋๋๊ฒ ๊ฐ๋ค.
์ซ์ ๋ค ์ฒซ ๊ธ์๋ title ํจ์๋ ๋๋ฌธ์๋ก ๋ฐํํด์ฃผ๊ธฐ ๋๋ฌธ์ธ๊ฒ ๊ฐ๋ค.