Bit operation을 이용해 다른 변수 선언 없이 swap 하는 방법
void swap(int *a, int *b) {
*a ^= *b;
*b ^= *a;
*a ^= *b;
}
비트를 이용하여 쉽게 set을 나타낼 수 있다.
i번째 원소가 set에 포함되어 있는지 확인하려면 set을 의미하는 값의 i번째 bit이 켜져 있는지를 확인하는 것이다.
int나 long long 등의 자료형들이 가질 수 있는 bit 개수를 고려하고 구현하면 된다.
응용으로는 bit mask + dp 문제가 있다.
아주 강력한 방법이지만 자료형의 크기 때문에 가질 수 있는 상태가 제한된다.
array 형태로 만들면 확장 가능할 듯. (쓸 일이 있을까?)
int array[10];
/*
array[0]: 0번부터 31번 원소까지
array[1]: 32번부터 63번 원소까지
...
*/
'Problem Solving > SW Expert Academy' 카테고리의 다른 글
그리디 & 완전 탐색 & DP (0) | 2022.01.21 |
---|---|
List & Memory Pool (0) | 2022.01.19 |
Is it necessary to get a bachelor of Computer Science to become a software engineer? (0) | 2022.01.18 |
문제를 풀기 전 주의해야 할 몇 가지 (0) | 2022.01.18 |
['22 삼성전자 동계 대학생 S/W 알고리즘 특강] 사전 문제 풀이 (0) | 2022.01.13 |
댓글