1. 문제 설명
문제 링크: 프로그래머스 - 홀짝 구분하기
자연수 n이 입력으로 주어졌을 때 만약 n이 짝수이면 "n is even"을, 홀수이면 "n is odd"를 출력하는 코드를 작성하는 문제입니다.
제한 사항
- 1 ≤ n ≤ 1,000
입출력 예
입력 #1
BASH
100
출력 #1
BASH
100 is even
입력 #2
BASH
1
출력 #2
BASH
1 is odd
2. 접근 방식 및 풀이
이 문제는 어떤 숫자가 2로 나누어떨어지는지 여부를 확인하는 나머지 연산자(%)의 개념을 요구합니다.
• 짝수의 정의: 2로 나눴을 때 나머지가 0인 수 (n (mod 2) == 0)
• 홀수의 정의: 2로 나눴을 때 나머지가 1인 수 (n (mod 2) == 1)
파이썬의 if-else 조건문을 사용하여 나머지가 0일 때는 is even을, 그 외의 경우에는 is odd를 출력하도록 분기 처리합니다. 출력할 때는 숫자와 문자열을 깔끔하게 조합하기 위해 파이썬의 f-string(포맷 스트링) 문법을 사용하면 편리합니다.
3. 결과
PYTHON
# 입력으로 정수 n을 받아옵니다.
n = int(input())
# 2로 나눈 나머지가 0이면 짝수입니다.
if n % 2 == 0:
print(f"{n} is even")
# 그렇지 않으면 홀수입니다.
else:
print(f"{n} is odd")
4. 복잡도 분석
시간 복잡도: O(1)
- 단순한 산술 연산과 조건문 비교, 출력만 수행하므로 입력값 $n$의 크기와 상관없이 항상 일정한 시간 내에 실행됩니다.
공간 복잡도: O(1)
- 입력받은 정수 $n$을 저장할 변수 하나만 사용하므로 추가적인 메모리 공간을 거의 차지하지 않습니다.
5. 깨달은 점
- 파이썬의
f"{변수} 문자열"문법을 쓰면 문자열과 정수를 형변환(str(n))할 필요 없이 직관적으로 출력 형식을 맞출 수 있어서 코드가 훨씬 간결해집니다. - 가장 기초적인 조건문 분기 문제이지만, 모든 알고리즘의 뼈대가 되는 핵심적인 연산(나머지 연산)을 복습하기 좋은 문제였습니다.
![[프로그래머스] 홀짝 구분하기(python)](https://app.notion.com/images/page-cover/usda_pear.png)