import java.util.LinkedHashSet;
import java.util.Set;
public final class Main {
public static void main(String[] args) {
Console.Instance.WriteLine(String.format("정수를 입력하세요(1~%d)", Checker.MAX_INPUT_VALUE));
int input = Console.Instance.ReadInt();
if (Checker.Instance.IsOdd(input)) {
Console.Instance.WriteLine("홀수입니다.");
}
if (Checker.Instance.IsEven(input)) {
Console.Instance.WriteLine("짝수입니다.");
}
}
}
enum Checker {
Instance;
public static final int MAX_INPUT_VALUE = 10000;
private final Set<Integer> _oddNumbers = new LinkedHashSet<>();
private final Set<Integer> _evenNumbers = new LinkedHashSet<>();
Checker() {
for (int i = 1; i <= MAX_INPUT_VALUE; i++) {
if (i % 2 == 0) {
_evenNumbers.add(i);
} else {
_oddNumbers.add(i);
}
}
}
public boolean IsOdd(int value) {
return _oddNumbers.contains(value);
}
public boolean IsEven(int value) {
return _evenNumbers.contains(value);
}
}
enum Console {
Instance;
public void WriteLine(String line) {
System.out.println(line);
}
public int ReadInt() {
try {
int sum = 0;
while (true) {
int input = System.in.read();
if (input == '\n' || input == ' ') {
return sum;
} else {
sum = (sum * 10) + (input - '0');
}
}
} catch (Throwable ignored) {
}
return 0;
}
}
내가 생각한 더티한 코드임 남이 보기에는 더티할지는 모르겠다.
더티한 포인트는
(1) 일반적인 언어 네이밍 컨벤션 무시
(2) 싱글톤 남용
(3) 기능을 비효율적으로 구현
해당 댓글은 삭제되었습니다.
인정 참여에 의미를 두겟다~
해당 댓글은 삭제되었습니다.
헉