본문 바로가기
백준

25943: 양팔저울 [백준 - Python]

by 청원뿔세포 2023. 10. 3.

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

 

25943번: 양팔저울

입력은 표준입력을 사용한다. 첫 번째 줄에 자갈 개수를 나타내는 양의 정수 $n$ ($2 ≤ n ≤ 10\,000$)이 주어진다. 다음 줄에 $n$ 개의 수들이 주어지는데, 이들은 번호 순서대로 자갈의 무게이다. 자

www.acmicpc.net

left, right 변수 2개를 만들어서 각각 첫번째 자갈과 두번째 자갈 무게를 값으로 초기화 해준다.

나머지 자갈들을 규칙에 맞게 왼쪽 오른쪽에 놔둔다.

 

그다음 left와 right의 무게를 비교하여 같다면 0을 출력하고, 다르다면 차이값을 구한다.

차이값에서 무한루프로 가장 큰 무게추 100g 부터 1개씩 카운트해준다.

 

n = int(input())
stones = list(map(int,input().split()))
left = stones[0]
right = stones[1]

for i in range(2,n):
    if left > right:
        right += stones[i]
    else:
        left += stones[i]

if left == right:
    print(0)
else:
    diff = max(right,left)-min(right,left)
    result = 0
    while(True):
        if diff == 0:
            break
        elif diff >=100:
            diff-=100
            result+=1
            continue
        elif diff >=50:
            diff-=50
            result+=1
            continue
        elif diff >=20:
            diff-=20
            result+=1
            continue
        elif diff >=10:
            diff-=10
            result+=1
            continue
        elif diff >=5:
            diff-=5
            result+=1
            continue
        elif diff >=2:
            diff-=2
            result+=1
            continue
        elif diff >=1:
            diff-=1
            result+=1
            continue
    print(result)

좀 무식한 방법으로 풀었다.

다른사람의 풀이를 보니 짧고 좋은 것 같다.

 

 

댓글