공부 자료/알고리즘

(Python/파이썬) 백준 1094번 - 막대기

뚜루뚜루세니 2021. 8. 1. 11:08
728x90

문제출처: https://www.acmicpc.net/problem/1094

 

1094번: 막대기

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

www.acmicpc.net

1. 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
x=int(input())
 
stick =[64,32,16,8,4,2,1]
cnt =0
 
for i in range(len(stick)):
    if x>=stick[i]:
        cnt+=1
        x -= stick[i]
 
    if x ==0:
        break
 
print(cnt)
cs

 

2. 해결과정

지민이가 처음에 가지고 있던 막대기의 길이가 64이고 계속 절반씩 자르기 때문에 64,32,16,8,4,2,1를 리스트에 우선 저장을 해준다. 큰 막대기부터 x와 비교를 해서 x가 더 크면 그 막대기를 붙이고, x에서는 그 막대기의 길이 만큼 빼준다. 남은 길이만큼을 또 다시 다른 막대기들과 비교해서 x가 0일때까지 반복을 해주면 된다.

 

3. 느낀점

처음에 문제가 이해가 안되서 어려웠던 문제. 구현은 쉬웠다

728x90