본문 바로가기
C/백준

[C 백준] 실버 5/ 1094번 막대기

by Meaning_ 2022. 3. 10.
728x90
반응형

https://www.acmicpc.net/problem/1094

 

1094번: 막대기

지민이는 길이가 64cm인 막대를 가지고 있다. 어느 날, 그는 길이가 Xcm인 막대가 가지고 싶어졌다. 지민이는 원래 가지고 있던 막대를 더 작은 막대로 자른다음에, 풀로 붙여서 길이가 Xcm인 막대

www.acmicpc.net

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
#include<stdlib.h>
#include<string.h>
 
 
int main() {
 
    int target;
    scanf("%d"&target);
    int result;
    int cnt = 0;
    for (int i = 6; i >= 0; i--) {
        result = target >> i & 1;//1이라면 1을 출력하는 것 
        if (result == 1) {
            cnt++;
        }
    }
 
    printf("%d", cnt);
 
    
    
    
}
cs

 

어차피 반으로 쪼개는 것이다 보니(2로 나누니까) 비트마스킹을 하는 것이 시간이 빨랐다.

비트 이동연산과 관련하여 도움받은 내용은 아래에 첨부해 두겠다.

https://coding-factory.tistory.com/655

 

[C언어/C++] 10진수를 2진수로 변환 출력하기 (비트연산 활용)

8진수나 16진수의 경우와는 달리 C언어에서는 2진수를 출력해줄 수 있는 서식 문자가 없습니다. 그렇기에 2진수는 직접 구해서 출력해야 하는데 일일이 2로 나누어 거꾸로 읽지 않아도 아래와 같

coding-factory.tistory.com

 

728x90
반응형

'C > 백준' 카테고리의 다른 글

[C 백준] 실버 3/ 1003번 피보나치 함수  (0) 2022.03.12

댓글