본문 바로가기

Coding Tests/코드업

코드업 1054번(논리 연산자&&)

두 개의 참(1) 또는 거짓(0)이 입력될 때,
모두 참일 때에만 참을 출력하는 프로그램을 작성해보는 문제이다.

 

<풀이 1..>

#include<stdio.h>
int main(void)
{
    int a,b;
    scanf("%d %d", &a,&b);
    if ((a ==1)&&(b==1))
        printf("1");
    else
        printf("0");
    return 0;
}

이 문제에서 1과 0 만이 입력값으로 들어오는 것을 알고 있어서, 1은 참 0은 거짓으로 생각하고 이렇게 코드를 작성하였다.  단, 입력값으로 2 나 3이 들어왔을 때 0이 출력이 되는데 , 이 문제에서 1과 0만이 입력된다는 것을 모른다면, 문제가 될 소지가 있다.

 

<풀이 2>

#include<stdio.h>
int main(void)
{
    int a,b;
    scanf("%d %d", &a,&b);
    if ((a != 0)&&(b != 0))
        printf("1");
    else
        printf("0");
    return 0;
}

그래서 이와 같은 코드를 작성하여주면, 그러한 문제가 없어지게 되는데!=과 &&의 연산자를 통해  둘 다 0이 아니면, 1을 출력하게끔 해주는 코드이다. <풀이 2>와 같은 코드가 조금 더 좋은 코드라고 할 수 있을 것 같다.