250x250
vg-rlo
vg-rlo
vg-rlo
전체 방문자
오늘
어제
  • CATEGORY (114)
    • 일상과 기록 (12)
    • REVIEW (11)
    • DATA (20)
      • ML and DL (6)
      • NLP (2)
      • Growth hacking (2)
      • Note (10)
    • CODE (46)
      • Algorithm and Data Structur.. (2)
      • Coding Test (34)
      • DB (2)
      • Python (6)
      • Linux (2)
      • Github (0)
    • Portfolio (6)
      • Pratice and Tutorials (2)
      • Toy Projects (2)
      • Competitions (2)
      • Data Analysis (0)
    • ISSUE (17)
    • 🛠... (0)

블로그 메뉴

  • Github

인기 글

티스토리

hELLO · Designed By 정상우.
vg-rlo

vg-rlo

CODE/Python

[Programmers] for 문과 if문을 한번에

2021. 5. 11. 16:14

문제 설명

정수를 담은 리스트 mylist를 입력받아, 이 리스트의 원소 중 짝수인 값만을 제곱해 담은 새 리스트를 리턴하는 solution함수를 완성해주세요. 예를 들어, [3, 2, 6, 7]이 주어진 경우3은 홀수이므로 무시합니다. 2는 짝수이므로 제곱합니다.6은 짝수이므로 제곱합니다.7은 홀수이므로 무시합니다. 따라서 2의 제곱과 6의 제곱을 담은 리스트인 [4, 36]을 리턴해야합니다. 제한 조건mylist는 길이가 100이하인 배열입니다.mylist의 원소는 1이상 100 이하인 정수입니다.

 

Solution 

  • list comprehension 
def solution(mylist):
    answer = []
    answer = [i**2 for i in mylist if i % 2 == 0]
    return answer
테스트 1 〉통과 (0.00ms, 10.3MB)
테스트 2 〉통과 (0.00ms, 10.1MB)
테스트 3 〉통과 (0.01ms, 10.2MB)

 

Result 

  • Runtime: 1.76ms 
  • 다른 방법과 비교 
# for문과 if문을 각각 작성했을때, 실행시간 2.31ms
mylist = [3, 2, 6, 7]
answer = []
for number in mylist:
    if number % 2 == 0:
        answer.append(number**2) # 들여쓰기를 두 번 함
# list comprehension일 때, 실행시간: 1.76ms
mylist = [3, 2, 6, 7]
answer = [number**2 for number in mylist if number % 2 == 0]

 

list comprehension: https://mingrammer.com/introduce-comprehension-of-python/
    'CODE/Python' 카테고리의 다른 글
    • [Python] assert
    • [Python] pip와 conda의 차이
    • [Python]부동소수점(floating point number)
    • [Python]변수의 범위(scope), 매개변수(parameter)
    vg-rlo
    vg-rlo
    🛠블로그 공사중.. Keep going! 🤔 (Profile - Dinotaeng®)

    티스토리툴바