답:
def solution(numbers):
array =[]
for num in numbers:
num = num * 2
array.append(num)
return array
문제 분석 및 해석
배열이 주어질때, 정수 값 2배 배열 만들기
1)list 의 요소를 꺼내어 각각 곱해주고, : for문, 연산자 *
2)곱한 것을 빈 리스트에 채워 리턴해준다. append()
+append 외에도 방법이 있을까?
과정1.
전체적인 틀과 for문을 먼저 작성하였다.
numbers1 = [1, 2, 3, 4, 5]
numbers2 = [1, 2, 100, -99, 1, 2, 3]
def solution(numbers):
for num in numbers:
num = num * 2
#여기에 바꾸어야하는 numbers를 넣어준다
return print(numbers)
solution(numbers1)
solution(numbers2)
과정2
이후 빈 리스트 추가, append로 array에 2를 곱한 num을 담아주었다.
주석으로도 달았지만, return array만하면 함수사용시 반환되어 array에 값은 담겨도
사용자의 눈에 보이게 출력시켜주지는 않는 함정이 있다. print()
numbers1 = [1, 2, 3, 4, 5]
numbers2 = [1, 2, 100, -99, 1, 2, 3]
array = []
def solution(numbers):
for num in numbers:
num = num * 2
array.append(num)
return print(array)
#print안붙이면 array에 넣어지기만 하고 출력이 안된다!
solution(numbers1)
solution(numbers2)
#결과: [2, 4, 6, 8, 10]
#결과: [2, 4, 6, 8, 10, 2, 4, 200, -198, 2, 4, 6]
각각 돌릴때는 문제가 없지만 한 번에 실행하려하니 결과값에 문제가 생겼다
방법 1. 리스트를 초기화해주는 부분을 함수안에 넣는다
함수 바깥에 리스트가 초기화되지 않기때문으로 판단했고, 빈 리스트를 함수 안으로 옮겼다!
def solution(numbers):
array = []
for num in numbers: ...
결과 : 깔끔!
[2, 4, 6, 8, 10]
[2, 4, 200, -198, 2, 4, 6]
떠올린 방법 2. 아예 리스트 요소를 대체해준다
시도1)
replace()로 바꿔보려고 했는데
replace는 문자열만 조작 가능한 함수였다;
AttributeError: 'int' object has no attribute 'replace'
=이건 과제 제출후 주말에 더 연구하자
list 활용으로 연결하여 같이 공부하면 좋을 것 같다.
print()와 return 기능을 보기,,
느낀점:
금방금방 풀어내는 나 자신 대견해!
하지만 아직 활용용례가 아주 좁은 곳에서 빙빙 돌고 있는 느낌이 든다.
꾸준히 추가공부를 하면서.. 이미 풀었던 문제도 다른 방법으로 풀이할 수 있는지 연구해보아야겠다.
'알고리즘 풀이' 카테고리의 다른 글
[algorithm] 프로그래머스: 가위바위보 (0) | 2023.04.10 |
---|---|
[algorithm] 프로그래머스: 배열 뒤집기 (0) | 2023.04.07 |
[algorithm] 프로그래머스: 최빈값 구하기 (0) | 2023.04.05 |
[algorithm] 프로그래머스: 몫 구하기 (0) | 2023.04.04 |
[algorithm] 백준: 2588 곱셈 (2) | 2023.04.03 |