[ 알고리즘 ] LeetCode 709. To Lower Case

이주 weekwith.me·2022년 8월 13일
0

알고리즘

목록 보기
61/73
post-thumbnail

블로그를 이전 중이라 완료되기 전까지는 벨로그에 작성할 계획입니다.
이후 모든 글은 https://weekwith.me 에 작성 예정이니 다른 글이 궁금하시다면 해당 링크를 통해 방문해주세요.

본 글은 [ LeetCode ] 709. To Lower Case를 풀고 작성한 글입니다.

문제

요구사항

Given a string s , return the string after replacing every uppercase letter with the same lowercase letter.

제약사항

  • 1 <= s.length <= 100
  • s consists of printable ASCII characters.

풀이

접근법

간단하게 문자열 객체에 사용할 수 있는 내장 메서드인 lower() 함수를 사용하면 된다.

나의 풀이

접근법을 토대로 문제를 해결하면 아래와 같다.

def solution(s: str) -> str:
    return s.lower()

다른 풀이

문자 사이의 차이를 계산하여 문자를 해결할 수도 있다.

ASCII 문자가 주어지기 때문에 영어 소문자가 대문자보다 이후에 나온다.

따라서 소문자 a와 대문자 A의 ASCII 코드 상에서의 차이를 계산한 다음 만약 주어진 문자열의 개별 문자가 대문자일 경우 그 차이만큼 더해주면 된다.

소스 코드는 아래와 같다.

def solution(s: str) -> str:
    difference: int = ord("a") - ord("A")
    return "".join([
        chr(difference + ord(character))
        if ord(character) >= ord("A") and ord(character) <= ord("Z")
        else character
        for character in s
    ])

시간 복잡도

주어진 문자열 s 의 길이 N만큼 반복문을 수행해서 리스트를 만든 다음 이를 문자열로 반환하기 때문에 시간 복잡도는 O(N)이다.

profile
Be Happy 😆

0개의 댓글