Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 주식분석
- 선형대수
- Sort
- effective python
- python
- 그래프이론
- scrapy
- Java
- yarn
- HelloWorld
- C
- RNN
- 텐서플로
- recursion
- 딥러닝
- hive
- NumPy
- 알고리즘
- 하둡2
- 코딩더매트릭스
- graph
- hadoop2
- GRU
- tensorflow
- 하이브
- codingthematrix
- LSTM
- collections
- C언어
- 파이썬
Archives
- Today
- Total
EXCELSIOR
[Level1] 자릿수더하기 (sum_digit) 본문
1. 문제
sum_digit함수는 자연수를 전달 받아서 숫자의 각 자릿수의 합을 구해서 return합니다.
예를들어 number = 123이면 1 + 2 + 3 = 6을 return하면 됩니다.
sum_digit함수를 완성해보세요.
2. 풀이
1) 내가 작성한 코드
1) - 1. 처음 풀이
def sum_digit(number): '''number의 각 자릿수를 더해서 return하세요''' num = str(number) sum = 0 for i in range(len(num)): sum += int(num[i]) return sum # 아래는 테스트로 출력해 보기 위한 코드입니다. print("결과 : {}".format(sum_digit(123)));
1) - 2. 두번째 풀이
- 더 쉬운 코드가 없는지 찾아보다가 map( ) 함수를 찾았다. 먼저 소스코드를 보자
- 아래와 같이 매우 깔끔한 코드가 작성된다.
def sum_digit(number): '''number의 각 자릿수를 더해서 return하세요''' num = str(number) return sum(map(int, num)) # 아래는 테스트로 출력해 보기 위한 코드입니다. print("결과 : {}".format(sum_digit(123)));
2) 다른 사람 풀이
def sum_digit(number): if number < 10: return number; return (number % 10) + sum_digit(number // 10) # 아래는 테스트로 출력해 보기 위한 코드입니다. print("결과 : {}".format(sum_digit(123)));
3. 알아둘 것
1) map( ) 함수
# map(f, iterable)은 함수(f)와 반복 가능한(iterable) 자료형을 입력으로 받는다. map은 입력받은 자료형의 각 요소가 함수 f에 의해 수행된 결과를 묶어서 리턴하는 함수이다. # two_times.py def two_times(numberList): result = [ ] for number in numberList: result.append(number*2) return result result = two_times([1, 2, 3, 4]) print(result) two_times 함수는 리스트 요소를 입력받아 각 요소에 2를 곱한 결과값을 돌려준다. 실행 결과는 다음과 같다. #결과값: [2, 4, 6, 8] #위의 예제는 map 함수를 이용하면 다음처럼 바꿀 수 있다. def two_times(x): return x*2 list(map(two_times, [1, 2, 3, 4])) #결과값: [2, 4, 6, 8]
2) Iterable(이터러블)
- Iterable 의 의미는 하나씩 요소를 넘겨줄 수 있는 객체를 말한다. (ex. list, tuple, str 등)
'Python > 알고리즘_문제' 카테고리의 다른 글
[Level1] 서울에서김서방찾기 (findKim) (0) | 2016.10.18 |
---|---|
[Level1]수박수박수박수박수박수? (water_melon) (0) | 2016.10.17 |
[Level1] 정수 제곱근 판별하기 (nextSqure) (0) | 2016.10.15 |
[Level1] 제일 작은 수 제거하기 (rm_small) (0) | 2016.10.14 |
[Level1] 평균구하기 (average) (0) | 2016.10.12 |
Comments