[TIL_Carrotww] 16 - 22/09/21

์œ ํ˜•์„ยท2022๋…„ 9์›” 21์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
19/138
post-thumbnail

๐Ÿ“Carrotww์˜ ์ฝ”๋”ฉ ๊ธฐ๋ก์žฅ

๐Ÿงฒ ์•Œ๊ณ ๋ฆฌ์ฆ˜

๐Ÿ”— ๋ฌธ์ œ ๋งํฌ : 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๋Š” ์ต์ˆ™ํ•˜์ง€ ์•Š์•„ ๋งŽ์ด ๋งŒ์ ธ๋ด์•ผ๊ฒ ๋‹ค.

๐Ÿงฒ ์•Œ๊ณ ๋ฆฌ์ฆ˜, title() ํ•จ์ˆ˜

๐Ÿ” 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 ํ•จ์ˆ˜๋Š” ๋Œ€๋ฌธ์ž๋กœ ๋ฐ˜ํ™˜ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์ธ๊ฒƒ ๊ฐ™๋‹ค.

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