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
'공부 자료 > 알고리즘' 카테고리의 다른 글
(C/C++) 백준 1932번 - 정수 삼각형 (0) | 2021.08.02 |
---|---|
(C/C++) 백준 2748번 - 피보나치 수 2 (0) | 2021.08.02 |
(Python/파이썬) 백준 10814번 - 나이순 정렬 (0) | 2021.08.01 |
(Python/파이썬) 백준 1193번 - 분수찾기 (0) | 2021.08.01 |
(Python/파이썬) 백준 11651번 - 좌표 정렬하기2 (0) | 2021.07.31 |