프로그래머스/입문
[프로그래머스 입문 / 파이썬] 짝수는 싫어요
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: 10 이하의 홀수가 담긴 배열 [1, 3, 5, 7, 9]를 반환합니다.
- 입력 예 #2: 15 이하의 홀수가 담긴 배열 [1, 3, 5, 7, 9, 11, 13, 15]를 반환합니다.
풀이 계획
홀수를 구하는 방법은 다음과 같습니다:
- 1부터
n
까지의 숫자 중에서 홀수만을 선택합니다. - 선택된 홀수들을 배열에 담아 반환합니다.
코드 구현
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]
시간 복잡도 비교
- 첫 번째 방법 (리스트 컴프리헨션): O(n) - 1부터 n까지의 숫자를 순회하면서 홀수를 선택합니다.
- 두 번째 방법 (반복문): O(n) - 1부터 n까지의 숫자를 순회하면서 홀수를 선택합니다.
- 세 번째 방법 (range 함수): O(n/2) - 홀수만을 생성하므로 절반의 시간만 소요됩니다.
태그
#프로그래머스 #코딩테스트 #파이썬 #알고리즘 #홀수 #반복문 #리스트컴프리헨션 #range함수 #프로그래밍 #문제풀이 #입문
이 글은 T스토리에 게시할 수 있도록 작성되었습니다.