프로그래머스/입문

[프로그래머스 입문 / 파이썬] 짝수는 싫어요

m으스으m 2024. 7. 23. 16:37

실습 코드 :

https://colab.research.google.com/drive/1LsnUUrhp1_5SATAPmyvHhBL1sLndC2LO?usp=sharing

 

[프로그래머스 입문 / 파이썬] 짝수는 싫어요.ipynb

Colab notebook

colab.research.google.com

 

문제 설명

정수 n이 매개변수로 주어질 때, n 이하의 홀수가 오름차순으로 담긴 배열을 return하도록 solution 함수를 완성해 주세요.

제한사항

  • 1 ≤ n ≤ 100

입력과 출력 예

n result
10 [1, 3, 5, 7, 9]
15 [1, 3, 5, 7, 9, 11, 13, 15]

입력 예 설명

  1. 입력 예 #1: 10 이하의 홀수가 담긴 배열 [1, 3, 5, 7, 9]를 반환합니다.
  2. 입력 예 #2: 15 이하의 홀수가 담긴 배열 [1, 3, 5, 7, 9, 11, 13, 15]를 반환합니다.

풀이 계획

홀수를 구하는 방법은 다음과 같습니다:

  1. 1부터 n까지의 숫자 중에서 홀수만을 선택합니다.
  2. 선택된 홀수들을 배열에 담아 반환합니다.

코드 구현

def solution(n):
    # 1부터 n까지의 숫자 중 홀수만을 선택합니다.
    result = [i for i in range(1, n + 1) if i % 2 != 0]
    return result

# 예시 테스트
print(solution(10))  # 출력: [1, 3, 5, 7, 9]
print(solution(15))  # 출력: [1, 3, 5, 7, 9, 11, 13, 15]

풀이 방법 2: 반복문 사용

단순 반복문을 사용하여 홀수 배열을 생성할 수 있습니다.

def solution(n):
    result = []
    for i in range(1, n + 1):
        if i % 2 != 0:
            result.append(i)
    return result

# 예시 테스트
print(solution(10))  # 출력: [1, 3, 5, 7, 9]
print(solution(15))  # 출력: [1, 3, 5, 7, 9, 11, 13, 15]

풀이 방법 3: range 함수 사용

range 함수의 step 매개변수를 이용하여 홀수 배열을 생성할 수 있습니다.

def solution(n):
    return list(range(1, n + 1, 2))

# 예시 테스트
print(solution(10))  # 출력: [1, 3, 5, 7, 9]
print(solution(15))  # 출력: [1, 3, 5, 7, 9, 11, 13, 15]

시간 복잡도 비교

  1. 첫 번째 방법 (리스트 컴프리헨션): O(n) - 1부터 n까지의 숫자를 순회하면서 홀수를 선택합니다.
  2. 두 번째 방법 (반복문): O(n) - 1부터 n까지의 숫자를 순회하면서 홀수를 선택합니다.
  3. 세 번째 방법 (range 함수): O(n/2) - 홀수만을 생성하므로 절반의 시간만 소요됩니다.

태그

#프로그래머스 #코딩테스트 #파이썬 #알고리즘 #홀수 #반복문 #리스트컴프리헨션 #range함수 #프로그래밍 #문제풀이 #입문

이 글은 T스토리에 게시할 수 있도록 작성되었습니다.