본문 바로가기

Python

[Python/level 0] 조건에 맞게 수열 변환하기 3 - 181835, 리스트 컴프리헨션

문제 설명

정수 배열 arr와 자연수 k가 주어집니다.

만약 k가 홀수라면 arr의 모든 원소에 k를 곱하고, k가 짝수라면 arr의 모든 원소에 k를 더합니다.

이러한 변환을 마친 후의 arr를 return 하는 solution 함수를 완성해 주세요.

 

code - 1차

def solution(arr, k):
    for i in range(len(arr)):
        if k % 2 == 0:
            arr[i] += k
        else:
            arr[i] *= k
    return arr
  • k가 짝수라면 arr의 모든 원소에 k를 더합니다.
    • for i in range(len(arr)): # arr의 길이만큼 i를 반복합니다.
    • if k%2==0: # k가 짝수라면
    • arr[i] += k # arr의 모든 원소에 k를 더하기
  • k가 홀수라면 arr의 모든 원소에 k를 곱합니다.
    • else: # k가 짝수가 아니라면 == 홀수라면
    • arr[i] *= k # arr의 모든 원소에 k를 곱하기

 

code - 2차

def solution(arr, k):
    return [ x+k if k%2 == 0 else x*k for x in arr]
  • x+k if k%2 == 0: # k가 짝수라면 모든 원소에 k를 더합니다.
  • else x*k: # k가 짝수가 아니라면 == 홀수라면 모든 원소에 k를 곱합니다.
  • for x in arr # x를 arr만큼 반복합니다.

 

반응형