728x90
SMALL
백준 문제 풀이: 5988 (홀수일까 짝수일까)
문제 링크: https://www.acmicpc.net/problem/5988
문제 설명:
정수의 마지막 숫자(일의 자리)를 보고 그 수가 **홀수**인지 **짝수**인지 판단합니다. 여러 개의 정수가 입력으로 주어질 때, 각 정수의 홀수/짝수 여부를 출력하세요.
문제 해결 코드
#include <iostream>
using namespace std;
int main() {
int n; // 입력 개수
cin >> n;
for (int i = 0; i < n; i++) {
string s; // 정수를 문자열로 입력받음
cin >> s;
int k = s.back() - '0'; // 문자열의 마지막 문자를 숫자로 변환
if (k % 2 == 0) {
cout << "even" << '\n'; // 짝수인 경우
} else {
cout << "odd" << '\n'; // 홀수인 경우
}
}
return 0;
}
코드 설명
코드의 주요 로직과 사용된 알고리즘 설명:
- 입력 처리: - 정수를 문자열로 입력받습니다. 이를 통해 정수의 길이와 상관없이 마지막 자리만 확인할 수 있습니다.
- 마지막 숫자 확인:
-
s.back()
: 문자열s
의 마지막 문자를 가져옵니다. - 홀수/짝수 판별:
- 마지막 숫자
k
가 **2로 나누어 떨어지면 짝수(even)**, 그렇지 않으면 홀수(odd)입니다.
시간 복잡도 분석
- 각 문자열의 길이를
m
이라고 하면,s.back()
은 O(1)입니다. - 총
n
개의 입력을 처리하므로 시간 복잡도는 **O(n)**입니다.
결과
각 정수의 홀수/짝수 여부를 정확히 출력합니다.
- 입력 예시:
3 1234 4321 100000
- 출력 예시:
even odd even
다른 접근 방식이나 개선 사항이 있다면 댓글로 공유 부탁드립니다!
728x90
LIST
'BAEKJOON > 수학' 카테고리의 다른 글
백준 15873번 [공백 없는 A+B](C++) -yes6686- 티스토리 (0) | 2024.06.29 |
---|---|
백준 4880번 [다음수](C++) -yes6686- 티스토리 (0) | 2024.05.17 |
백준 31430번 [A+B - 투 스텝](C++) -yes6686- 티스토리 (0) | 2024.05.11 |
백준 11947번 [이런 반전이](C++) -yes6686- 티스토리 (0) | 2024.05.10 |
백준 20949번 [효정과 새 모니터](C++) -yes6686- 티스토리 (0) | 2024.05.09 |