일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 정보처리기사
- 우테코 7기
- 파이썬
- 취뽀
- 우테코 프리코스
- UML
- SSAFY
- dfs
- 싸피
- 13기
- SWEA
- 삼성 부트캠프
- 코딩테스트
- 우테코
- 정처기
- 비전공자
- 싸피 13기
- 코딩
- 코테
- 삼성청년SW아카데미
- 디자인패턴
- 삼성 청년 sw아카데미
- 개발자
- 삼성 청년 SW 아카데미
- 백준
- 부트캠프
- 백준 2003
- 삼성
- 프리코스
- 마이스터고
Archives
- Today
- Total
룰루코딩
백준 1094 막대기 본문
문제
솔루션
import sys
input = sys.stdin.readline
x = int(input())
li=[64]
while sum(li) > x:
tmp = li.pop()/2
li.append(tmp)
li.append(tmp)
if sum(li[:-1])>=x:
li.pop()
print(len(li))
깨달은점
문제를 하나씩 읽으면서 그대로 코드를 짰더니 되긴했다.
다른 풀이법을 찾아보니 처음 수가 정해져있어서 그런지 리스트를 미리 짜놓고 푸는 방법도 있었다.
x = int(input())
li = [64, 32, 16, 8, 4, 2, 1]
cnt = 0
while x > 0:
for i in li:
if x // i == 1:
cnt += 1
x -= i
break
print(cnt)
x = int(input())
li = [64,32,16,8,4,2,1]
cnt = 0
for i in li:
while x-i >= 0:
x -= i
cnt += 1
print(cnt)
아예 다른 풀이 방법도 있었다.
print(bin(int(input()))[2:].count('1'))
X를 이진수로 변환하였을 때, 1의 개수를 출력하는 문제라고 하는데 여기까지는 생각하지 못할 것 같다..
'백준' 카테고리의 다른 글
백준 11399 ATM (0) | 2024.10.02 |
---|---|
백준 1260 DFS와 BFS (1) | 2024.10.01 |
백준 7785 회사에 있는 사람 (0) | 2024.10.01 |
백준 17219 비밀번호 찾기 (2) | 2024.09.28 |
백준 1620 나는야 포켓몬 마스터 이다솜 (2) | 2024.09.27 |