일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 노개북
- 파이썬 연산자
- 쉽게 배우는 데이터 통신과 컴퓨터 네트워크
- 시스템 소프트웨어
- 컴퓨터 동작방식
- 라우팅
- icmp
- 기억장치
- 데이터통신
- RARP
- 데이터 통신과 컴퓨터 네트워크
- 이것이 취업을 위한 코딩테스트다
- 이코테
- 북클럽
- 파이썬 정렬
- OSI7계층모델
- 쿠키
- 파이썬 자료형
- ARP
- 컴퓨터네트워크
- CS
- 자료형
- sort()
- IT5분잡학사전
- 리스트
- data type
- DP
- GIT
- 노마드코더
- 이것이 취업을 위한 코딩 테스트다
- Today
- Total
뚝딱햄 탈출기
[Python][프로그래머스 lv.0] 120809. 배열 두 배 만들기 : for문, 리스트 컴프리헨션 본문
[Python][프로그래머스 lv.0] 120809. 배열 두 배 만들기 : for문, 리스트 컴프리헨션
hyrmzz1 2023. 10. 3. 04:35
내 풀이
첫번째 풀이 & 보완할 점
def solution(numbers):
answer = []
for i in range(len(numbers)):
answer.append(numbers[i] * 2)
return answer
인덱스 값을 순서대로 호출하는 for문을 이용해 정수 배열 numbers의 각 원소에 접근하고, 각 원소에 2를 곱한 값을 answer 배열에 추가해야겠다고 생각했다.
그래서 len으로 리스트의 길이를 구하고, range에 넣어 0부터 len - 1까지의 인덱스로 numbers의 원소들을 구했다.
그러나 in 뒤에는 리스트, 튜플, 문자열 등이 들어갈 수 있기 때문에 len(numbers)과 인덱스를 통해 데이터를 찾지 않아도 된다.
in 뒤에 리스트명 또는 리스트를 넣으면, 해당 리스트의 모든 원소에 순서대로 접근할 수 있다.
# for문과 리스트 함께 사용하기 1
list = [38, 21, 53, 62, 19]
for i in list:
print(i)
'''
실행 결과
38
21
53
62
19
'''
# for문과 리스트 함께 사용하기 2
for i in [1,2,3,4,5]:
print(i)
'''
실행 결과
1
2
3
4
5
'''
따라서 아래와 같이 수정할 수 있다.
def solution(numbers):
answer = []
for i in numbers:
answer.append(i * 2)
return answer
두번째 풀이
리스트 컴프리헨션을 이용하면 더욱 간결하게 작성할 수 있다.
리스트 컴프리헨션은 대괄호([]) 안에 조건분과 반복문을 넣는 방식으로 리스트를 초기화할 수 있다.
따라서 리스트 컴프리헨션을 이용한다면 리스트를 미리 초기화할 필요가 없고, for문을 이용해 리스트에 원소를 추가할 때 append() 함수를 사용할 필요도 없다. 단 한 줄로 리스트에 원소를 추가하는 for문을 작성할 수 있다!
def solution(numbers):
answer = [i * 2 for i in numbers]
return answer
기억할 것
- for문에서 in 뒤에는 리스트, 튜플, 문자열 등이 들어갈 수 있다.
- for문에서 in 뒤에 리스트 또는 리스트명이 들어가면 리스트의 원소 각각에 순서대로 접근할 수 있다.
- 조건문과 반복문을 사용해 리스트에 원소를 추가해야 한다면 리스트 컴프리헨션을 이용하자.
참고할만한 포스팅
2023.10.01 - [Programming language/Python] - [Python] 리스트 자료형 List data type
2023.10.02 - [Programming language/Python] - [Python] 반복문 : while문, for문
https://school.programmers.co.kr/learn/courses/30/lessons/120809?language=python3
'Algorithm & Data structure > 알고리즘 문제 풀이' 카테고리의 다른 글
[Python][백준 BOJ Bronze II] 1978. 소수 찾기 : for else 문, 하나의 수에 대한 소수 판별 (1) | 2023.10.14 |
---|---|
[Python][프로그래머스 lv.0] 120808. 분수의 덧셈 : 최대공약수 (0) | 2023.10.03 |
[JavaScript][프로그래머스 lv.0] 120809. 배열 두 배 만들기 : map() (0) | 2023.08.11 |
[JavaScript] 엘리스 트랙 - 3, 6, 9 게임 (0) | 2023.08.10 |
[JavaScript] 엘리스 트랙 - 소수의 합 (0) | 2023.08.10 |