관리 메뉴

클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지

연산자 5 - 관계 · 논리 · 비트 연산자 코딩테스트 문제 본문

알고리즘 및 자료 관리/알고리즘 & 코딩테스트

연산자 5 - 관계 · 논리 · 비트 연산자 코딩테스트 문제

huenuri 2024. 8. 25. 10:43

이제 아침 프로그래밍 시간이 얼마 남지 않았다. 마지막 문제로 관계 · 논리 · 비트 연산자를 활용한 문제를 풀어보려고 한다.

비슷한 유형의 문제들이 많아서 몇 개로 간추려서 정리해볼 것이다.


 

 

관계 연산자 <1137번>

 

관계연산자 3

 

관계연산자 3

두 정수(a, b)를 입력받아 a와 b가 같으면 0, 같지 않으면 1을 출력하는 프로그램을 작성하시오. 참고) 어떤 값을 비교하기 위해 비교/관계연산자(comparison/relational)를 사용할 수 있다. 관계연산자는

codeup.kr

 

문제 1번

두 정수(a, b)를 입력받아 a와 b가 같으면 0, 같지 않으면 1을 출력하는 프로그램을 작성하시오.

 

문제에서 같으면 0, 같지 않으면 1이 출력되므로 1이 출력되었다. 1번과 2번 관계연산자 문제는 비슷해서 1개만 다시 풀어보았다.


 

 

논리 연산자(NOT) <1138번>

 

논리 연산자(NOT)

 

논리 연산자(NOT)

1(true, 참) 또는 0(false, 거짓) 이 입력되었을 때 결과를 반대로 출력하는 프로그램을 작성해보자. 참고) C언어에서 비교/관계 연산(==, !=, >, <, >=, <=)이 수행될 때, 0은 거짓(false)을 의미하고, 0이 아

codeup.kr

 

문제 2번

1(true, 참) 또는 0(false, 거짓) 이 입력되었을 때 결과를 반대로 출력하는 프로그램을 작성해보자. 0또는 1이 입력된다.
입력된 논리값의 반대로 출력한다.

 

 

1번 문제와 다른 점은 하나의 숫자(참 또는 거짓)가 입력되고 그것과 반대되는 값이 출려된다는 것이다. 여기서는 관계연산자가 아닌 논리연산자를 사용해야 한다.

이 둘의 차이를 꼭 기억하자!


 

 

 

논리 연산자(AND) <1139번>

 

논리 연산자(AND)

 

논리 연산자(AND)

두 가지의 참(1) 또는 거짓(0)이 입력될 때, 모두 참일 때는 1이, 그렇지 않으면 0이 출력되는 프로그램을 작성해보자. 참고) 논리연산자 && 는 주어진 2개의 논리값이 모두 참(1) 일 때에 1(참)으로

codeup.kr

 

문제 3번

두 가지의 참(1) 또는 거짓(0)이 입력될 때, 모두 참일 때는 1이, 그렇지 않으면 0이 출력되는 프로그램을 작성해보자.

 

3번 문제에서는 참일 때는 1, 그렇지 않으면 0이 출력되어야 하므로 and 연산임을 알 수 있다. &&를 사용하는데 &과 혼동해서는 안된다. &는 뒤에 나오는 비트연산자과 연관이 있다.


 

 

비트 연산자(OR) <1144번>

 

비트 연산자(OR)

 

비트 연산자(OR)

두 수를 입력받아 비트단위로 OR연산한 후 결과를 출력하시오. 참고) 비트연산자 | 은 주어진 2개의 값을 2진법으로 변환한 뒤, 비트별로 OR 연산을 수행한 뒤 결과를 출력한다. 이러한 비트 연산

codeup.kr

 

문제 4번

두 수를 입력받아 비트단위로 OR연산한 후 결과를 출력하시오.

 

 

3과 5에서 or 연산을 하면 7이 나온다.


 

 

 

비트 연산자(<<) <1147번>

 

비트 연산자(<<)

 

비트 연산자(<<)

두 정수 a, x입력.(1<=a<=100,000 , 1<=x<=10)

codeup.kr

 

문제 5번

정수 a, x를 입력받아 a의 값을 x만큼 SHIFT(<<) 연산한 후 결과를 출력하시오.

 

 

왼쪽 시프트 연산을 했으니 값이 더 커지고, 오른쪽 시프트 연산을 하면 값이 작아진다. 두 개의 연산은 좀 헤깔리기도 하는데, 머리가 어느쪽을 향해 있는지 보면 파악할 수 있다. 왼쪽 시프트 연산은 끝 부분이 왼쪽을 향하고 있고, 오른쪽은 그 반대의 경우이다.


 

 

 

 

학습을 마치고

 

이렇게 해서 오늘 풀려고 했던 3가지 주제별로 코딩 테스트 문제를 풀어보았다. 마지막 주제의 문제가 남아있지만 이건 내일이나 다음에 학습해보려고 한다.

이제 관계 · 논리 · 비트 연산자를 어려워하지 않고 잘 구분할 수 있게 되었다~