사용자 도구

사이트 도구


ps:problems:programmers:12930

이상한 문자 만들기

ps
링크programmers.co.kr/…
출처프로그래머스
문제 번호12930
문제명이상한 문자 만들기
레벨Level 1
분류

기초

시간복잡도O(n)
인풋사이즈n <= ?
사용한 언어Python
해결날짜2021/07/14

풀이

  • 그냥 기초적인 구현 문제.
  • split()를 이용해서 단어별로 쪼개서 단어별로 변환한 뒤에, ' '.join(..)으로 합치는 것은, 공백문자가 여러개 이어서 나올 경우를 처리해주지 못한다
  • 그냥 to_upper 라는 불리언 변수를 만들고서, 문자열 전체를 쭉 훑으면서 to_upper값을 플립하면서 to_upper에 따라서 대/소문자로의 변환을 적용하는 식으로 구현했다. 공백문자이면 to_upper를 True로 다시 초기화하면 된다.
  • 시간복잡도는 O(n) (n=문자열 길이) 인데 문제에서는 범위 제한이 주어지지는 않는다..

코드

"""Solution code for "Programmers 12930. 이상한 문자 만들기".

- Problem link: https://programmers.co.kr/learn/courses/30/lessons/12930
- Solution link: http://www.teferi.net/ps/problems/programmers/12930
"""


def solution(s):
    to_upper = True
    answer = []
    for c in s:
        answer.append(c.upper() if to_upper else c.lower())
        to_upper = (c == ' ' or not to_upper)
    return ''.join(answer)

토론

댓글을 입력하세요:
H J Z M F
 
ps/problems/programmers/12930.txt · 마지막으로 수정됨: 2021/07/16 15:32 저자 teferi