프로그래머스/입문
[프로그래머스 입문 / 파이썬] 배열 두 배 만들기
m으스으m
2024. 7. 22. 19:41
실습 코드 :
https://colab.research.google.com/drive/1sXfHgaKUdd5n3FbPUAU1wJ1YUDwye354?usp=sharing
[프로그래머스 입문 / 파이썬] 배열 두 배 만들기.ipynb
Colab notebook
colab.research.google.com
문제 설명
정수 배열 numbers
가 매개변수로 주어집니다. numbers
의 각 원소에 두배한 원소를 가진 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
-10,000 <= numbers의 원소 <= 10,000
1 <= numbers의 길이 <= 1,000
입력 예시
numbers | result |
---|---|
[1, 2, 3, 4, 5] | [2, 4, 6, 8, 10] |
[1, 2, 100, -99, 1, 2, 3] | [2, 4, 200, -198, 2, 4, 6] |
입력 예시 설명
- 입력 예 #1:
[1, 2, 3, 4, 5]
의 각 원소에 두배를 한 배열[2, 4, 6, 8, 10]
을 return합니다. - 입력 예 #2:
[1, 2, 100, -99, 1, 2, 3]
의 각 원소에 두배를 한 배열[2, 4, 200, -198, 2, 4, 6]
을 return합니다.
문제 풀이 설명
주어진 배열의 각 원소를 두배로 만든 배열을 반환하는 문제입니다. 이를 해결하기 위해 다음의 단계를 따릅니다:
- 입력 배열
numbers
를 순회하면서 각 원소를 2배로 만듭니다. - 2배로 만든 값을 새로운 배열에 추가합니다.
- 새로운 배열을 반환합니다.
코드 구현
def solution(numbers):
# 각 원소를 두배로 만들어 새로운 배열을 생성
result = [number * 2 for number in numbers]
return result
# 테스트 예시
print(solution([1, 2, 3, 4, 5])) # 결과: [2, 4, 6, 8, 10]
print(solution([1, 2, 100, -99, 1, 2, 3])) # 결과: [2, 4, 200, -198, 2, 4, 6]
풀이법 2: map 함수 사용
파이썬의 map
함수를 사용하여 각 원소를 두배로 만드는 방법도 있습니다.
def solution(numbers):
# map 함수를 사용하여 각 원소를 두배로 만듦
return list(map(lambda x: x * 2, numbers))
# 테스트 예시
print(solution([1, 2, 3, 4, 5])) # 결과: [2, 4, 6, 8, 10]
print(solution([1, 2, 100, -99, 1, 2, 3])) # 결과: [2, 4, 200, -198, 2, 4, 6]
풀이법 3: numpy 라이브러리 사용
numpy
라이브러리를 사용하면 배열 연산을 쉽게 할 수 있습니다.
import numpy as np
def solution(numbers):
# numpy 배열을 사용하여 각 원소를 두배로 만듦
return list(np.array(numbers) * 2)
# 테스트 예시
print(solution([1, 2, 3, 4, 5])) # 결과: [2, 4, 6, 8, 10]
print(solution([1, 2, 100, -99, 1, 2, 3])) # 결과: [2, 4, 200, -198, 2, 4, 6]
계산 복잡도
- 첫 번째 방법:
O(n)
- 배열을 한 번 순회하며 각 원소를 두배로 만듭니다. - 두 번째 방법:
O(n)
-map
함수를 사용하여 배열을 순회합니다. - 세 번째 방법:
O(n)
-numpy
배열을 사용하여 연산을 수행합니다.
태그
- #프로그래머스
- #파이썬
- #코딩테스트
- #알고리즘
- #배열
- #기초문제
- #입문문제
- #리스트컴프리헨션
- #함수형프로그래밍
- #numpy