TIL_[Python] 파이썬 map 함수

김희정·2024년 1월 9일

TIL

목록 보기
28/57
post-thumbnail

코드카타 알고리즘 문제 풀다 처음 보는 함수가 있어서 찾아봤다.

자연수 뒤집어 배열로 만들기

문제 설명
자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요.
예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.

제한 조건
n은 10,000,000,000 이하인 자연수

입출력 예

nreturn
12345[5,4,3,2,1]

def solution(n):
    answer = []
    n = str(n)
    
    for i in range(1, len(n)+1):
        a = int(n[-i])
        answer.append(a)
    return answer
  1. n 문자열로 바꾸기
  2. range 범위 설정 (1, len(n)+1)
    ex. n = 123인 경우, len(n)=3,
    range(1,3) = 1, 2까지만이므로 len(n)+1 하기
  3. n의 뒤에서부터 뽑아야하기 때문에, n(-i), 그리고 뽑은 값은 다시 숫자로 변환하기

다른 사람들의 풀이를 보다가 map 함수를 발견했다.

MAP 함수
map 함수는 반복가능한 iterable 객체를 받아서,
각 요소에 함수를 적용해주는 함수
map (적용시킬 함수, 적용할 요소들)

list 값에 +1 연산 예시

def add_1(n):
      return n + 1

target = [1, 2, 3, 4, 5]
result = []
for value in target:
     result.append(add_1(value))

print(result) # 출력결과 : [2, 3, 4, 5, 6]

map 함수 사용시

def add_1(n):
      return n + 1

target = [1, 2, 3, 4, 5]

result = map(add_1, target)

print(result) 

예시 데이터 출처


다시 코드카타로 돌아가서

다른 사람의 풀이

(map 함수 사용)
def digit_reverse(n):
    return list(map(int, reversed(str(n))))
    # 문자열을 거꾸로 입력해줌
(list compre
def digit_reverse(n):
    return [int(i) for i in str(n)][::-1]
    # 문자열 뒤에 [::-1] 붙이면, 반대로 배열해줌
profile
데이터 애널리스트가 되고 싶은

0개의 댓글