Cohe

프로그래머스 올바른 괄호, JadenCase 문자열 만들기 본문

개발 이모저모/코딩 테스트 공부

프로그래머스 올바른 괄호, JadenCase 문자열 만들기

코헤0121 2024. 8. 20. 18:18
728x90

올바른 괄호

문제


문제 설명
괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어

"()()" 또는 "(())()" 는 올바른 괄호입니다.
")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다.
'(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요.

제한사항
문자열 s의 길이 : 100,000 이하의 자연수
문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다.

풀이

  • 스택으로 풀어야 한다..
  • 나 스택은 아는데 왜 못풀었지ㅠㅠ
def solution(s):
    stack = []
    for char in s : 
        if char =='(':
            stack.append(char)
        elif char == ')':
            if not stack : 
                return False
            stack.pop()
    return len(stack) == 0

JadenCase 문자열 만들기

문제

문제 설명
JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고)
문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.

제한 조건
s는 길이 1 이상 200 이하인 문자열입니다.
s는 알파벳과 숫자, 공백문자(" ")로 이루어져 있습니다.
숫자는 단어의 첫 문자로만 나옵니다.
숫자로만 이루어진 단어는 없습니다.
공백문자가 연속해서 나올 수 있습니다.

고민

  • 일단 split으로 해결하고 싶었는데 잘 안됐다.. 띄어쓰기가 다 지워져서 너무 속상하다..
    -> 이 부분 찾아보니까 내가 잘못안 부분이었다! 인공지능을 써보니
    s.split() 대신 s.split(' ')를 사용하여 연속된 공백을 유지합니다. 이렇게 나왔다

풀이


def solution(s):
    # 문자열을 공백을 기준으로 나누되, 연속된 공백도 유지
    words = s.split(' ')

    jaden_words = []
    for word in words:
        if word:
            # 첫 글자를 대문자로, 나머지는 소문자로 변환
            jaden_word = word[0].upper() + word[1:].lower()
            jaden_words.append(jaden_word)
        else:
            # 빈 문자열(연속된 공백)은 그대로 추가
            jaden_words.append(word)

    # 변환된 단어들을 다시 공백으로 연결
    return ' '.join(jaden_words)

'개발 이모저모 > 코딩 테스트 공부' 카테고리의 다른 글

프로그래머스 명예의 전당  (1) 2024.10.01
프로그래머스 최소직사각형  (2) 2024.09.28
기능개발  (0) 2024.03.29