💻 하나씩 차곡차곡/프로그래머스 (Python)

코딩테스트 입문 Day12 - 모음 제거, 문자열 정렬하기(1), 숨어있는 숫자의 덧셈(1), 소인수분해

뚜루리 2023. 3. 3. 07:13
728x90
320x100

모음 제거

import re

def solution(my_string):
    answer = ''

    answer = re.sub("a|e|i|o|u", "", my_string)
    return answere.sub(r"a|e|i|o|u", "", my_string)
  • 이 알고리즘 풀면서 정규식을 제공하는 re내장 라이브러리를 알게 되었읍니다 껄껄

 

def solution(my_string):
    answer = ''
    
    for i in my_string:
        if i not in ['a', 'e', 'i', 'o', 'u']:
            answer += i
    
    return answer

 

 

문자열 정렬하기(1)

import re

def solution(my_string):
    answer2 = list(re.sub(r'[^0-9]', '', my_string))
    answer2.sort()
    answer = [int (i) for i in answer2]
    return answer
  • 배열을 싹다 int로 형변환 하고 싶을 땐 아래와 같이 쓰면 된다는 것을 알았읍니다 껄껄 
answer = [int (i) for i in answer2]

 

def solution(my_string):
    answer = []
    
    for i in my_string:
        if i.isdigit( ):
            answer.append(int(i))
    
    answer.sort()
    
    return answer
  • isdigit() : 숫자인지 아닌지 판별하는 함수를 사용.

 

숨어있는 숫자의 덧셈(1)

import re

def solution(my_string):
    answer2 = list(re.sub(r'[^0-9]', '', my_string))
    answer2 = [int (i) for i in answer2]
    answer = sum(answer2)
    return answer
  • 와 씨 배열 덧셈을 for문 안돌리고 저렇게 간결하게 할수 있다고..? 했지만 자바에도 내장 라이브러리 있었음 ㅈㅅ
def solution(my_string):
    answer = 0
    
    for i in my_string:
        if i.isdigit():
            answer += int(i)    
    return answer

 

 

 

소인수분해

def solution(n):
    answer = []
    d = 2
    while d <= n:
        if n % d == 0:
            answer.append(d)
            n = n // d
        else:
            d += 1
    return list(dict.fromkeys(answer))
  • dict.fromkeys()를 사용하면, 순서는 유지한 채 중복값들을 제거할 수 있다고 함. 
728x90
320x100