본문 바로가기
카테고리 없음

[코딩테스트] 이어 붙인 수

by 박매트 2024. 1. 12.

문제

정수가 담긴 리스트 num_list가 주어집니다. num_list의 홀수만 순서대로 이어 붙인 수와 짝수만 순서대로 이어 붙인 수의 합을 return하도록 solution 함수를 완성해주세요.

 

입출력 예

 

 

입출력 예 #1
홀수만 이어 붙인 수는 351이고 짝수만 이어 붙인 수는 42입니다. 두 수의 합은 393입니다.

 

입출력 예 #2
홀수만 이어 붙인 수는 573이고 짝수만 이어 붙인 수는 8입니다. 두 수의 합은 581입니다.

 

mysolution.py

def solution(num_list):
    odd = ""
    even = ""
    
    for i in num_list:
        if i%2==0:
            even+=str(i)
        else:
            odd+=str(i)
    
    return int(even)+int(odd)

 

다른 사람 풀이

def solution(num_list):
    even=int(''.join([str(i) for i in num_list if i%2==0]))
    odd=int(''.join([str(i) for i in num_list if not i%2==0]))
    return even+odd

 

 

느낀 점

이 문제의 경우는 거의 대부분 비슷한 풀이였다.

리스트로 처음에 접근하려고 했는데.. join 함수를 이용해서 할 수 있구나!

아직 join이 익숙하지 않다. . .  ' '.join(리스트이름) => 리스트 값 하나하나 쪼개서 붙여서 하나의 문자열로 return!

 

join 사용 ver.

def solution(num_list):
    odd = []
    even = []
    
    for i in num_list:
        if i%2==0:
            even.append(str(i))
        else:
            odd.append(str(i))
    
    return int(''.join(even))+ int(''.join(odd))