ALGORITHM/코딩 기초 트레이닝

[프로그래머스]홀짝 구분하기

jki09871 2024. 7. 26. 13:56

 

아무리 쉬운 코드도 리뷰 합니다.
 문제 설명
자연수 n이 입력으로 주어졌을 때 만약 n이 짝수이면 "n is even"을,
홀수이면 "n is odd"를 출력하는 코드를 작성해 보세요.

제한사항
1 ≤ n ≤ 1,000

입출력 예
입력 #1
100

출력 #1
100 is even

입력 #2
1

출력 #2
1 is odd
----------------------------------------------------------------------
import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        
        if(n >= 1 && n <= 1000){
            if(n % 2 == 1){
                System.out.println(n + " is odd");
            }else{
                System.out.println(n + " is even");
            }
        }
    }
}
----------------------------------------------------------------------
public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        
        if(n >= 1 && n <= 1000){
           System.out.print(n + " is "+(n % 2 == 0 ? "even" : "odd"));
        }
    }
}

설명

  1. 첫번째 : 제한사항에 맞추어 if를 통해 a값이 1보다 크거나 같으면서 1000보다 작거나 같은지 확인한다.
  2. 첫번째 : 홀수, 짝수를 알기 위해 n에 저장된 값을 2로 나누어 1이 남으면 if문 {}안에가 작동하고 짝수이면 else{} 부분이 작동한다.
  3. 두번째 : 제한사항에 맞추어 if를 통해 a값이 1보다 크거나 같으면서 1000보다 작거나 같은지 확인한다.
  4. 두번째 : 삼항연사자를 통해 n에 저장된 값이 2로 나누어 0이라면 even, 1이라면 odd 를 출력한다.

첫 번째 코드

  • 장점: 조건문을 명확히 분리하여 odd와 even을 처리하는 부분이 명확히 구분되어 있다.
  • 단점: 두 개의 System.out.println 호출로 인해 코드가 좀 더 길어진다.

두 번째 코드

  • 장점: 삼항 연산자를 사용하여 한 줄로 간결하게 작성되어 있습니다. 코드가 더 짧고 읽기 쉬운 경향이 있다.
  • 단점: 삼항 연산자를 사용하여 간결성을 추구했지만, 모든 사람이 삼항 연산자에 익숙하지 않을 수 있다. 따라서 코드가 복잡해 보일 수도 있다.

 

중요코드

  • n & 2 == 1 : 숫자를 2로 나누어 홀수, 짝수를 구분하는 코드이다.
  • n % 2 == 0 ? "even" : "odd" : 삼항연사자를 이용해 원하는 글자를 출력한다.

실행결과

정확성 테스트
테스트 1 〉 통과 (159.65ms, 63.9MB)
테스트 2 〉 통과 (181.61ms, 65.5MB)
테스트 3 〉 통과 (225.28ms, 63.2MB)
테스트 4 〉 통과 (213.64ms, 66.4MB)
채점 결과
정확성: 100.0
합계: 100.0 / 100.0