-
[BAEK JOON] 1094. 막대기 (Python)공부/알고리즘 2024. 4. 25. 15:59
문제링크
1094번: 막대기
지민이는 길이가 64cm인 막대를 가지고 있다. 어느 날, 그는 길이가 Xcm인 막대가 가지고 싶어졌다. 지민이는 원래 가지고 있던 막대를 더 작은 막대로 자른다음에, 풀로 붙여서 길이가 Xcm인 막대
www.acmicpc.net
제출 코드
import sys //64cm bar를 반으로 자른 값을 저장한 리스트 barlist = [64, 32, 16, 8 , 4 , 2 , 1] //막대기를 카운트할 변수 bar_count = 0 x = (int(sys.stdin.readline().strip())) //반복문으로 가지고있는 막대기의 길이를 하나씩 가져온다. // x >= i 경우만 count 값을 증가 (x가 23이면 64, 32는 될수가 없기에 제외된다.) // 처음 16이 들어가고 x에서 16을 빼면 7이 남기 때문에 8은 버리게 된다. // 따라서 총 4개가 된다. for i in barlist: if(x >= i): bar_count+=1 x -=i if( x == 0 ): break print(bar_count)
문제를 읽고 이해하는데 시간이 더 걸린 문제인거같다.. 한 3번은 읽고 다른 곳의 문제를 정리한 글도 읽었다..
문제의 요점은 지민이는 64cm 막대기를 이미 보유하고 있고
이 64cm 막대기를 계속 반으로 잘라서 Xcm 길이로 맞추려면 몇 개의 막대기를 붙이면 되냐 라는 문제이다.
즉, Xcm를 만들려면 몇 개의 막대기가 필요하냐 라는 문제로
64cm라는 주어진 길이가 생각보다 큰 값이 아니기에 리스트를 만들어서 하나씩 전부 대입시켜 문제를 해결했다.
'공부 > 알고리즘' 카테고리의 다른 글
[BAEK JOON] 1292. 쉽게 푸는 문제 (Python) (1) 2024.04.28 [BAEK JOON] 1251. 단어 나누기 (Python) (0) 2024.04.27 [BAEK JOON] 2822. 점수 계산 (Python) (0) 2024.04.18 [BAEK JOON] 1181. 단어 정렬 (0) 2024.04.17 [BAEK JOON] 2896. 무알콜 칵테일 (0) 2024.04.09