https://www.acmicpc.net/problem/1094
문제 설명
64cm짜리 막대기를 반으로 잘라가면서 내가 원하는 길이로 만들려고 한다.
이때 조각난 막대기를 붙여 원하는 길이로 만들 때 조각난 막대기 수를 구하는 문제이다.
주요 로직
1. 비트 마스킹을 사용해서 푼다.
64, 32, 16, 8, 4, 2, 1 이런식으로 줄기 때문에 비트마스킹을 사용해 총 몇 개의 1을 가지고 있는지 확인하면 된다.
정답 코드
#include <bits/stdc++.h>
using namespace std;
int x, val;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
cin >> x;
for(int i=0; i<7; i++){
if(x & (1<<i)) val++;
}
cout << val << "\n";
return 0;
}
'PS' 카테고리의 다른 글
[백준] 2109번 순회 강연 (C++) (0) | 2024.09.25 |
---|---|
[백준] 14405번 피카츄 (C++) (0) | 2024.09.23 |
[백준] 2234번 성곽 (C++) (0) | 2024.09.21 |
[백준] 19942번 다이어트 (C++) (0) | 2024.09.16 |
[백준] 15686번 치킨배달 (C++) (1) | 2024.09.12 |