Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬으로 단어 목록을 카멜 케이스(camelCase)로 변환하는 방법

문제 개요

여러 개의 단어로 이루어진 리스트가 주어졌을 때, 이 단어들을 하나로 이어 붙여 카멜 케이스(camelCase) 형식의 문자열을 만들어야 한다고 가정해 보겠습니다.

예를 들어 입력이 ["Hello", "World", "Python", "Programming"]이라면, 출력은 다음과 같습니다.

helloWorldPythonProgramming

카멜 케이스란 각 단어의 첫 글자만 대문자로 표기하고 단어 사이에 공백 없이 연결하는 표기법입니다. 단, 맨 앞 단어의 첫 글자는 소문자로 시작하는 것이 특징입니다.

해결 접근 방법

이 문제는 다음 단계를 따라 해결할 수 있습니다.

  • 빈 문자열 s를 초기화합니다.

  • words 리스트의 각 단어에 대해 다음을 수행합니다.

    • 단어의 첫 글자는 대문자로, 나머지 글자는 모두 소문자로 변환합니다.

    • 변환된 단어를 문자열 s 뒤에 이어 붙입니다.

  • 완성된 문자열 s의 첫 글자만 소문자로 바꾸어 최종 결과(ret)를 만듭니다.

  • ret를 반환합니다.

구현 예제

아래 코드를 통해 실제 구현 방법을 확인해 보겠습니다.

class Solution:
    def solve(self, words):
        s = "".join(word[0].upper() + word[1:].lower() for word in words)
        return s[0].lower() + s[1:]

ob = Solution()
words = ["Hello", "World", "Python", "Programming"]
print(ob.solve(words))

입력

["Hello", "World", "Python", "Programming"]

출력

helloWorldPythonProgramming

코드 설명

핵심 로직은 "".join(...) 부분에 있습니다. 제너레이터 표현식을 사용해 각 단어를 word[0].upper() + word[1:].lower() 방식으로 변환한 뒤, 공백 없이 한 번에 연결합니다. 여기서 word[0]은 첫 글자, word[1:]은 두 번째 글자부터 끝까지를 의미합니다.

마지막으로 s[0].lower() + s[1:]를 통해 전체 문자열의 첫 글자만 소문자로 변경하여 순수한 카멜 케이스 형태를 완성합니다. 이 방법은 시간 복잡도 O(n)으로 단어 개수에 관계없이 효율적으로 동작합니다.