문제
정수 배열 numbers가 매개변수로 주어집니다. numbers의 각 원소에 두배한 원소를 가진 배열을 return하도록 solution 함수를 완성해주세요.
원리
이 문제의 핵심은 배열생성, 배열 순회, 원소 연산, 결과 저장 과정이 필요합니다
배열
배열은 여러 개의 값을 순서대로 저장하는 데이터 구조로, 각 요소는 고유한 인덱스를 통해 접근할 수 있고 연산도 가능합니다.
배열의 생성
특정한 데이터 타입의 여러 값을 저장할 수 있는 공간을 메모리에 할당하는 과정을 말합니다. 배열을 생성할 때 배열이 저장할 타입과 배열의 크기를 지정 해야합니다.
배열의 순회
배열의 모든 원소를 한 번씩 접근하는 과정을 말합니다. 주로 반복문으로 사용하여 구현되고, 배열의 첫 번째 원소부터 마지막 까지 순서대로 접근합니다.
이과정에서 각 원소에 대한 연산을 수행하거나, 원소의 값을 확인하거나 변경할 수 있습니다.
풀이
Python
for문 사용
def solution(numbers):
answer = []
for number in numbers:
answer.append(number*2)
return answer
파이썬에서는 가장 기본적인 for문은 특정 시퀸스를 순회하거나, 특정 횟수만큼 코드를 반복하는 작업을 수행합니다.
for 변수 in 시퀸스:
수행할 문장
시퀸스
여기서 시퀀스는 리스트. 튜플, 딕셔너리, 문자열, range() 함수를 이용해 지정된 횟수만큼 코드를 반복하는데 사용됩니다.
- 리스트(List)
대괄호 [ ], 안에 콤마,로 구분된 값들의 목록을 담습니다. 리스트는(mutable), 다양한 타입의 데이터를 담을수 있습니다.#리스트 예시 my_list = [1, '사과', 3.14]
- 튜플(Tuple)
괄호( ) 안에 콤마로 구분된 값들의 목록을 담습니다. 튜플(immutable)은 변경 불가하고, 다양한 타입의 데이터를 담을수 있습니다.
#튜플 예시 my_tuple = (1, 'apple', 3.14)
- 문자열(String)
따옴표" "안에 콤마로 구분된 값을들의 목록에 담습니다. 변경이 불가능하고, 문자 타입의 데이터만 만들수 있습니다.
my_string = "Hello, World!"
- 레인지(Range)
range() 함수를 사용하여 숫자의 시퀸스를 생성합니다. 레인지는 변경 불가능하며, 숫자 타입의 데이터만 담을수 있습니다.
range(stop) range(start, stop) range(start, stop, step)
append( )
append() 메서드는 파이썬의 리스트에서 제공하는 메서드 중 하나로, 리스트의 끝에 요소를 추가하는데 사용 됩니다.
- append() 문법과 예제
리스트명.append(추가할 요소) fruits = ['apple', 'banana'] fruits.append('cherry') print(fruits) #['apple', 'banana', 'cherry]
리스트 컴프헨션(List Comprehension)문 사용
def solution(numbers):
return [number * 2 for number in numbers]
리스트 컴프헨션
- 파이썬에서 리스트를 생성하는 간결하고 효율적인 방법입니다, 특정한 규칙에 따라 리스트를 생성하거나, 기존 리스트를 기반으로 새로운 리스트를 생성하는 데 사용합니다.
[표현식 for 변수 in 시퀀스] squares = [i ** 2 for i in range(10)] print(squares) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] [표현식 for 변수 in 시퀀스 if 조건] even_squares = [i ** 2 for i in range(10) if i % 2 == 0] print(even_squares) #[0, 4, 16, 36, 64]
출처
https://school.programmers.co.kr/learn/courses/30/lessons/120809