AND, OR, XOR와 시프트
비트를 자신 있게 읽고 결합합니다
AND, OR, XOR와 시프트은(는) CoddyKit의 무료 Competitive Programming Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Competitive Programming Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Competitive Programming Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
비트는 여러분의 도구입니다
모든 정수는 사실 0과 1로 이루어진 비트의 나열입니다. 비트를 읽고 결합하는 법을 배우면 대회에서 빠르고 영리한 기법을 사용할 수 있습니다. 🔧
이진수 살펴보기
파이썬의 bin()을 사용하면 어떤 수의 비트든 살펴볼 수 있습니다. 0b 접두사는 이 값이 이진수임을 나타내며, 그 뒤의 부분이 비트 패턴입니다.
print(bin(13)) # 0b1101AND는 공통 비트를 남깁니다
AND 연산자(&)는 두 수가 모두 1인 위치에서만 1을 반환합니다. 공통 비트를 확인하거나 마스킹할 때 유용합니다.
print(6 & 3) # 0b110 & 0b011 = 0b010 = 2OR는 비트를 결합합니다
OR 연산자(|)는 두 수 중 하나라도 1인 위치에서 1을 반환합니다. 다른 부분은 건드리지 않고 플래그를 켤 때 사용하세요.
print(6 | 1) # 0b110 | 0b001 = 0b111 = 7XOR는 차이를 찾아냅니다
XOR 연산자(^)는 두 비트가 다른 위치에서 1을 반환합니다. 토글하거나 홀로 다른 값을 찾을 때 대회에서 즐겨 사용하는 연산자입니다.
print(6 ^ 3) # 0b110 ^ 0b011 = 0b101 = 5XOR는 스스로 상쇄됩니다
어떤 수를 자기 자신과 XOR하면 항상 0이 되고, 0과 XOR하면 값이 변하지 않습니다. 이런 자기 상쇄 특성이 많은 XOR 퍼즐의 기반이 됩니다.
print(7 ^ 7) # 0
print(7 ^ 0) # 7고유한 값 찾기
하나를 제외한 모든 values가 두 번씩 나타난다면, 모든 값을 XOR로 결합하세요. 쌍은 사라지고 고유한 값만 남습니다.
ans = 0
for x in [4, 1, 2, 1, 2]:
ans ^= x
print(ans) # 4왼쪽 시프트는 곱셈입니다
왼쪽 시프트는 비트를 왼쪽으로 이동시키고 오른쪽에 0을 추가합니다. 한 칸 시프트할 때마다 값이 두 배가 되므로 2의 거듭제곱을 곱하는 것과 같습니다.
print(3 << 2) # 3 * 4 = 12오른쪽 시프트는 나눗셈입니다
오른쪽 시프트는 오른쪽 끝의 비트를 버립니다. 한 칸 시프트할 때마다 값이 절반이 되어 2의 거듭제곱으로 정수 나눗셈을 수행하는 것과 같습니다.
print(20 >> 2) # 20 // 4 = 52의 거듭제곱 만들기
1을 k만큼 왼쪽 시프트하면 2의 k제곱을 즉시 만들 수 있습니다. 단일 비트 마스크를 만드는 가장 깔끔한 방법입니다.
print(1 << 5) # 32대회에서는 속도가 중요합니다
비트 연산자는 한 번의 빠른 단계로 실행되므로 산술 연산을 시프트로 바꾸면 아슬아슬한 시간 제한을 통과할 수 있습니다. 완전히 익혀 두세요. ⚡
빠른 확인
비트 연산자를 확인해 보세요.
요약: 비트 연산자
이제 AND, OR, XOR와 시프트를 배웠습니다. 한 번의 빠른 단계로 비트를 결합하고, 토글하고, 크기를 조절할 수 있습니다. 앞으로 배울 모든 비트 기법의 기본 구성 요소입니다. 🎉
자주 묻는 질문
“AND, OR, XOR와 시프트” 강의는 무료인가요?
네 — “AND, OR, XOR와 시프트” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Competitive Programming Academy 강의 전체를 잠금 해제할 수 있습니다. Competitive Programming Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“AND, OR, XOR와 시프트”에서 뭘 배우나요?
비트를 자신 있게 읽고 결합합니다 브라우저에서 직접 실행하는 실습 코드로 Competitive Programming Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Competitive Programming Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Competitive Programming Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.
“AND, OR, XOR와 시프트” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Competitive Programming Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Competitive Programming Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- AND, OR, XOR와 시프트
- 비트 설정, 삭제와 토글
- 비트 개수와 최하위 설정 비트
- 작은 집합으로 사용하는 비트마스크