728x90
KDT 실무형 스프링 백엔드 엔지니어 양성과정 6기 | Algorithm CODEKATA
🆎 짝수와 홀수
🏷 Topic : 연산자 산술 연산자 삼항 연산자
문제 설명
정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요.
제한 조건
num은 int 범위의 정수입니다.- 0은 짝수입니다.
입출력 예
| num | return |
|---|---|
| 3 | "Odd" |
| 4 | "Even" |
✔ Solution with if-else Statement
class Solution {
public String solution(int num) {
String answer;
if (num % 2 == 0) {
answer = "Even";
} else {
answer = "Odd";
}
return answer;
}
}
채점 결과

✔ Solution with Ternary Operator
class Solution {
public String solution(int num) {
String answer = (num % 2 == 0) ? "Even" : "Odd";
return answer;
}
}
채점 결과

✔ Solution with String Array
class Solution {
public String solution(int num) {
String[] choose = {"Even", "Odd"};
int idx = num % 2;
if (idx == -1) {
idx *= -1;
}
String answer = choose[idx];
return answer;
}
}
채점 결과

💥 오늘 만난 문제 & 나의 시도 💦 & 해결 방법 👍
문제는 어려운 문제가 아니었지만 다양한 방법으로 풀어 보았다.
📌 오늘 문제의 Point! : 매개변수로 주어진 num이 짝수이면 "Even", 홀수이면 "Odd"를 반환하라.
num이 홀수 :num을2로 나눈 나머지가1
즉, 나머지 연산자(%)를 사용하면num % 2 == 1num이 짝수 :num을2로 나눈 나머지가0
즉num % 2 == 0
1. if-else문 사용하기
- 만약
num이 짝수이면answer에 "Even"을 할당 if (num % 2 == 0) { answer = "Even"; }- 위의 조건을 만족하지 않으면(
num이 홀수이면),answer에 `Odd"를 할당 else { answer = "Odd"; }
2. 삼항 연산자를 이용하기
num이 짝수이면answer에 "Even"을 할당하고 아니면 "Odd"를 할당String answer = (num % 2 == 0) ? "Even" : "Odd";
3. String[]을 이용하기
- String[]
choose에 "Even"과 "Odd"를 넣어놓고num % 2의 결과값을 인덱스로choose의 요소를 가져오자. - 처음 쓴 코드
class Solution { public String solution(int num) { String[] choose = {"Even", "Odd"}; String answer = choose[num % 2]; return answer; } }채점 결과

잘 될 줄 알았는데 num의 범위가 정수이므로num이 음수일 때, num % 2가 -1이 나오는 경우가 있을 수 있으므로 틀린 문제가 나옴.😫
코드를 수정함.
- 위의 코드에서
choose를 초기화한 다음 인덱스를 넣을 변수 intidx를num % 2로 초기화
int idx = num % 2; - 만약
idx가-1이면idx에 -1을 곱하기
if (idx == -1) { idx *= -1; } answer에choose[idx]를 할당
String answer = choose[idx];
🎉 코딩테스트 문제 해결! 🎉
💬 무엇을 새롭게 알았는지
한 문제를 다양한 방법으로 풀어보는 경험을 할 수 있었다.
728x90