문제
매우 큰 정수가 주어질 때, 홀수인지 짝수인지 판별하라.
입력
첫째 줄에 T, 이후 T줄에 정수가 문자열로 주어진다.
출력
각 수에 대해 "even" 또는 "odd"를 출력한다.
예제
| 입력 | 출력 |
|---|---|
2 1024 5765 | even odd |
풀이
마지막 자릿수만 확인하여 홀짝을 판별한다.
- 정수를 문자열로 입력받는다
- 마지막 문자의 ASCII 값이 짝수이면 "even", 홀수이면 "odd"를 출력한다
핵심 아이디어: 수의 홀짝은 마지막 자릿수에만 의존하므로, 큰 수도 문자열의 마지막 문자만 확인하면 된다.
코드
package day749;
import java.io.*;
public class Day733BOJ5988홀짝 {
public static void main(String[] argv) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int T = Integer.parseInt(br.readLine());
for (int i = 0; i < T; i++) {
String x = (br.readLine());
sb.append((x.charAt(x.length() - 1) % 2 == 0) ? "even" : "odd").append("\n");
}
System.out.println(sb);
}
}복잡도
- 시간: O(T)
- 공간: O(L) - L은 문자열 길이