ALGORITHM/PYTHON

백준 BAEKJOON 25943번 양팔저울 [PYTHON/파이썬]

칼코
반응형

백준 BAEKJOON 25943번 양팔저울 [PYTHON/파이썬]


<문제 출처>

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

 

25943번: 양팔저울

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

www.acmicpc.net

백준 25943번

<풀이>

자갈 리스트에서 0번째 인덱스는 왼쪽, 1번째 인덱스는 오른쪽에 값을 저장 후

2번 조건을 적용하여 for문을 구현하였다.

그리고 왼쪽과 오른쪽의 차이를 구한 뒤 필요한 무게추를 계산하였다.

 

<코드>

import sys
input = sys.stdin.readline

W = [100, 50, 20, 10, 5, 2, 1]	# 무게추 리스트

N = int(input())
P = list(map(int, input().split()))
left, right = P[0], P[1]	# 0번째(왼쪽), 1번째(오른쪽)

for i in range(2, N) :
    if left == right :	# 같으면
        left += P[i]	# 왼쪽에 더해줌
    else :	# 그렇지 않으면 작은 쪽에 더해줌
        if left < right :
            left += P[i]
        elif left > right :
            right += P[i]

tmp = abs(left - right)	# 왼쪽과 오른쪽의 차이

if tmp == 0 :	# 0이면 0출력
    print(0)
else :	# 아니라면 for문 순회
    cnt = 0	# 무게추 개수 저장할 변수
    for w in W :
        if (tmp // w) != 0 :
            cnt += tmp // w	# 몫을 통해 개수 더함
            tmp = tmp % w	# 나머지 초기화
    print(cnt)
반응형