<aside> <img src="/icons/zoom-in_gray.svg" alt="/icons/zoom-in_gray.svg" width="40px" /> 스터디 리더 소개 및 개설하게 된 계기
스터디 리더: 이금주
소개: 안녕하세요. 2년차 백엔드 개발자 이금주입니다. si회사에 근무 중이며, CS공부의 필요성을 느껴, 하나씩 책을 깊게 읽고 싶어 스터디를 개설하게 되었습니다. 이 스터디 이후 하반기 스터디까지 시간이 남는다면 운영체제 혹은 알고리즘에 대한 공부도 할 예정입니다. 이 스터디가 끝이 아닌 이어지는 스터디가 됐으면 좋겠어요! 감사합니다
활동: https://velog.io/@prettylee620/posts </aside>
스터디 주제: 한 권으로 읽는 컴퓨터 구조와 프로그래밍 책 읽기
대상
모집 정원: 최대 7명(리더, 운영진 1명 포함)
목표 : 한권으로 읽는 컴퓨터 구조와 프로그래밍 책 완독 및 정리
주차별 학습 분량을 읽은 후 질문
준비하기
질문이란 ? 개인적으로 더 파고 싶어서 정리한 내용 혹은 딥 다이브한 내용
질문은 3개 이상 준비해서 공유할 것
질문이나 정리의 예시
<aside> <img src="/icons/star-of-life_red.svg" alt="/icons/star-of-life_red.svg" width="40px" /> 예시
Q2. 불리언 연산에서 XOR이 중요한 이유는 무엇이며, 이를 활용한 대표적인 알고리즘이나 응용 사례에는 어떤 것들이 있을까?
XOR(배타적 논리합, Exclusive OR)은 두 입력이 다를 때 참(True)이 되는 논리 연산이다.
A B XOR
--------------
0 0 0
0 1 1
1 0 1
1 1 0
🚀 XOR이 중요한 이유
x ^ 1
→ x가 1이면 0, 0이면 1)💡 XOR을 활용한 대표적인 알고리즘
비트 스왑(Bit Swapping)
a = a ^ b;
b = a ^ b; // b = (a ^ b) ^ b = a
a = a ^ b; // a = (a ^ b) ^ a = b
중복된 숫자 찾기 (XOR을 이용한 빠른 방법)
arr = [1, 2, 3, 2, 1]
result = 0
for num in arr:
result ^= num
print(result) # 3
One-Time Pad 암호화 (XOR 암호)
def xor_encrypt_decrypt(message, key):
return "".join(chr(ord(m) ^ ord(k)) for m, k in zip(message, key))
message = "hello"
key = "world"
encrypted = xor_encrypt_decrypt(message, key)
decrypted = xor_encrypt_decrypt(encrypted, key)
print("Encrypted:", encrypted)
print("Decrypted:", decrypted)
정리한 자료(질문)들 스터디 시작 전 깃허브
에 공유
2명 랜덤으로 뽑아서 발표
발표 후 한 사람당 한명씩 돌아가면서 이야기 나누거나, 나누고 싶은 내용 자유롭게 공유