짝수는 2로 나눴을 때 나머지가 0.
홀수는 1이 남는다.
나머지를 구하기 위한 연산자는? " % "
코드로 옮기면 다음과 같다.
string solution(int num) {
return num % 2 ? "Odd" : "Even";
}
하지만 더 우아한 방법이 있으니...
비트 연산자를 활용하는 것이다.
string solution(int num) {
return num & 1 ? "Odd" : "Even";
}
여기서 3과 4를 가정해 보자.
3은 이진수로 1 0 1,
4는 이진수로 1 0 0이다.
홀수는 마지 비트가 무조건 1이고 짝수는 0이다.
이걸 1과 AND 연산을 했을 때 홀수는 무조건 1이고 짝수는 0이 리턴된다.
그럼 자연스럽게 홀짝이 구분된다.
비트 연산자를 쓸 일이 꽤 없는 것도 아니다.
이렇게 알아두면 좋지 않을까.
'Camp > T.I.L.' 카테고리의 다른 글
[TIL #11] 나머지가 1이 되는 수 찾기 (0) | 2024.07.01 |
---|---|
[TIL #10] 자릿수 더하기 / 약수의 합 (0) | 2024.06.28 |
[TIL #8] 배열의 평균값 (0) | 2024.06.26 |
[TIL #7] 짝수의 합 구하기 (0) | 2024.06.25 |
[TIL #6] Github Page로 웹페이지 배포 (0) | 2024.06.24 |