[Programmers] - 자릿수 더하기

오동훈·2021년 3월 14일
0

Programmers

목록 보기
9/64
post-thumbnail

1. Problem 📃

https://programmers.co.kr/learn/courses/30/lessons/12931

이번 문제는, 자연수 N이 주어졌을 때 N의 각 자릿수의 합을 구해서 반환하는 함수를 만드는 문제입니다.

2. Logic 👨‍🏫

  1. 입력 받은 자연수 N을 list 형태로 변환해 줍니다.
  2. sum 함수를 이용해 결과를 구하고 반환해 줍니다.

3. Code 💻

1. 내가 푼 코드

def solution(n):
    n_list = list(str(n))
    answer = [int(i) for i in n_list]
    return sum(answer)

2. 다른 분이 푼 코드

def sum_digit(number):
    return sum(map(int,str(number)))

# 아래는 테스트로 출력해 보기 위한 코드입니다.
print("결과 : {}".format(sum_digit(123)));

4. Feedback 📚

4.1 List 형 변환

4.1.1. map 이용하기

  • 형식: map(변환 함수, iterable(반복 가능한 데이터 ex). 리스트, 튜플 등))
  • map함수의 인자로 들어가는 함수는 람다를 쓰면 편하다.
  • 리턴 타입: iterator (map object)
originalList = ['2', '4', '6', '8', '10', '12']
intList = list(map(int, originalList))
print(intList)
# 출력 결과: [2, 4, 6, 8, 10, 12]

4.1.2 List Comprehension

# exam 1

originalList = ['2', '4', '6', '8', '10', '12']
intList1 = [int(x) for x in originalList]
intList2 = [x for x in originalList]

print(intList1) # 출력 결과: [2, 4, 6, 8, 10, 12]
print(intList2) # 출력 결과: ['2', '4', '6', '8', '10', '12']
# exam 2

ex1). [i*i for i in range(1, 5)]
ex2). [i*i for i in range(1, 5) if i % 2 == 0]

ex1). [1, 4, 9, 16] # 출력 결과
ex2). [4, 16] # 출력 결과
# exam 3

[(x, y) for x in range(3) for y in range(3)]

[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)] # 출력 결과


[x for x in originalList + (Etc)] 이 쓰임을 알면 앞으로도 요기나게 쓸 수 있을것이다!

profile
삽질의 기록들🐥

0개의 댓글