코딩 기록들

프로그래머스 코딩테스트입문 - 소인수분해, 숨어있는 숫자의 덧셈1 본문

프로그래머스 문제기록

프로그래머스 코딩테스트입문 - 소인수분해, 숨어있는 숫자의 덧셈1

코딩펭귄 2023. 10. 17. 18:40

나의풀이

def solution(n):           # n=12
    answer = []
    a = 2      # n을 2로 계속 나누다가 홀수가 되는 시점부터 a+1 한 값으로 나눠떨어지는 값을 answer에 저장
    while a <= n:            # 1) 2 <= 12          2) 2 <= 6         3) 2 <= 3         4) 3<=3
        if n % a == 0:       # 1) 12%2->나머지가0   2) 6%2->나머지가0  3) 3%2->나머지가1 4) 3%3 나머지0
            answer.append(a) # 1) answer에 2추가    2) answer에 2추가                   4) answer에 3추가
            n = n//a         # 1) 12//2->n=6       2) 6//2-> n=3                       4) 3//3->n=1
        else:                                                      # 3) a+1 해줌 (a=3)
            a += 1
        
    return list(dict.fromkeys(answer)) 
              # dict.fromkeys(문자열 혹은 리스트) 
              #  -> 문자열 혹은 리스트의 원소를 중복 제거 후 남은 원소들을 value가 없는 key로 저장

 

 

나의풀이

def solution(my_string):
    answer = 0
    a = []
    for i in my_string:
        if i == str(1):
            answer += int(i)
        if i == str(2):
            answer += int(i)
        if i == str(3):
            answer += int(i)
        if i == str(4):
            answer += int(i)
        if i == str(5):
            answer += int(i)
        if i == str(6):
            answer += int(i)
        if i == str(7):
            answer += int(i)
        if i == str(8):
            answer += int(i)
        if i == str(9):
            answer += int(i)
                
    return answer

 

정리된 깔끔한 풀이

2)
def solution(my_string):
    answer = 0
    for i in my_string:
        try:
            answer = answer + int(i)
        except:
            pass

    return answer
     
3)
def solution(my_string):
    answer = 0
    number = ['0','1','2','3','4','5','6','7','8','9']

    for i in range(len(my_string)):
        if my_string[i] in number:
            answer += int(my_string[i])
        else:
            continue

    return answer