본문 바로가기
Language/Java

[Programmers | Java | 연습 문제 풀이] 짝수와 홀수 - Solution with Ternary Operator

by ㅇ달빛천사ㅇ 2024. 6. 6.
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이 홀수 : num2로 나눈 나머지가 1
    즉, 나머지 연산자(%)를 사용하면 num % 2 == 1
  • num이 짝수 : num2로 나눈 나머지가 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를 초기화한 다음 인덱스를 넣을 변수 int idxnum % 2로 초기화
    int idx = num % 2;
  • 만약 idx-1이면 idx에 -1을 곱하기
    if (idx == -1) {
        idx *= -1;
    }
  • answerchoose[idx]를 할당
    String answer = choose[idx];

🎉 코딩테스트 문제 해결! 🎉


💬 무엇을 새롭게 알았는지

한 문제를 다양한 방법으로 풀어보는 경험을 할 수 있었다.

728x90


Top