반응형
BufferedReader 함수와 <<, >> (비트연산자)에 대한 이해도를 높일 수 있었던 문제.
answer += (1L << i) * zeroCount * oneCount[i];
이 부분을 이해하느라 조금 힘들었다.
- 0의 개수와 1의 개수를 왜 곱하냐? -> 어차피 두 수의 개수는 전체 주민 수 안에서 논다.
- ex) 3명이라 가정하면 ==> 0은 1개, 1은 2개 / 0은 3개, 1은 0개 이런 식으로 나온다.
- 고로, 전부 0 or 1이 아니면 순열에 의해 2^i가 몇 번 곱해져야 하는지 알아낼 수 있고
- 전부 0 또는 1이라면, 해당 자릿수(2^i)의 숫자는 하나도 없다는 뜻이기 때문에 곱하기 0을 해주면 끝 !
반응형
'CodingTest_BAEKJOON' 카테고리의 다른 글
백준 알고리즘 - 수들의 합 2(2003) (0) | 2023.08.03 |
---|---|
백준 알고리즘 - 2차원 배열의 합(2167) (0) | 2023.08.03 |
백준 알고리즘 - 팰린드롬 만들기(1254) (0) | 2023.08.03 |
백준 알고리즘 - 괄호(9012) (0) | 2023.07.18 |