728x90
def solution(my_string):
    answer = []
    for c in my_string:
        if c.islower():
            answer.append(c.upper())
        else:
            answer.append(c.lower())
    return ''.join(answer)
def solution(my_string):
    return my_string.swapcase()

swapcase()

  • 대문자는 소문자로, 소문자는 대문자로 변환해주는 함수이다.
  • 이 함수를 알았다면 훨씬 간단하게 문제를 해결할 수 있었을 듯!
728x90
728x90
def solution(n, numlist):
    return ([i for i in numlist if i % n ==0])
728x90
728x90

나의 풀이

def solution(n, t):
    return n * (2**t)

다른 사람의 풀이

def solution(n, t):
    return n << t

비트시프트(<<, >>)

  • 왼쪽 시프트 연산자 (<<)
    : 2를 곱한 것과 같은 효과
    : n << m : n * 2의 m승
  • 오른쪽 시프트 연산자 (>>)
    : 2로 나눈 것과 같은 효과
    : n >> m : n / 2의 m승
728x90
728x90
def solution(hp):    
    return hp // 5 + (hp % 5 // 3) + ((hp % 5) % 3)

 

def solution(hp):
    answer = hp // 5
    hp = hp % 5
    answer += hp // 3
    hp = hp % 3
    answer += hp
    return answer
728x90
728x90
def solution(my_string):
    return "".join([i for i in my_string if not(i in "aeiou")])
728x90
728x90
def solution(my_string):
    return sum(int(i) for i in my_string if i.isdigit())

isdigit(), isalpha(), isalnum()

  • isdigit() : 숫자로만 구성되어 있으면 True, 문자열에서 정수 추출
  • isalpha() : 문자로 구성되어 있으면 True, 문자열에서 글자 추출
  • isalnum() : 글자 또는 숫자로 구성되어 있으면 True

 

.

.

.

 

import re

def solution(my_string):
    return sum(int(n) for n in re.sub('[^1-9]', '', my_string))

re.findall()

  • r'\d+' : 1회 이상 연속된 숫자들에 대한 패턴 추출
  • r'\d' : 숫자 1개씩 추출
import re
numbers = re.findall(r'\d+', string)
number = re.findall(r'd', string) 
  • [0-9]+ : 숫자들 추출 정규식
  • [a-zA-Z] : 문자들 추출 정규식
728x90
728x90
def solution(n):
    return 1 if (n ** 0.5) % 1 == 0 else 2
  • 이번 문제는 n ** (1/2)가 제곱근이라는 것과, 숫자를 1로 나눴을 때 나머지가 0이면 정수라는 것만 인지한다면 쉽게 해결할 수 있는 문제였다.
def solution(n):
    return 1 if (n ** 0.5).is_integer() else 2

is_integer() => 정수 판별 함수

 

728x90
728x90
def solution(str1, str2):
    return 1 if str2 in str1 else 2
728x90

+ Recent posts