본문 바로가기

백준 write-up/정렬 & 그리디

[백준] 책 정리 : 1434번 - Python

728x90
반응형

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

 

1434번: 책 정리

첫째 줄에 박스의 개수 N, 책의 개수 M이 주어진다. 둘째 줄에는 박스의 용량 A1, A2, ..., AN이 주어지고, 셋째 줄에는 B1, B2, ..., BM이 주어진다.

www.acmicpc.net

 

 

 

문제를 풀면서 몰랐던 개념

 

[Python] append 함수와 extend 함수의 차이

: list.append(x)는 리스트 끝에 x 한 개를 그대로 넣는다면 list.extend(iterable)은 리스트 끝에 가장 바깥쪽 iterable의 모든 항목을 넣는다.

# B가 리스트형일 때

A = ['one2ye', 'loves', '20s']
B = ['me', 'too']

A.append(B)	# append 함수
print(A)
>>> ['one2ye', 'loves', '20s', ['me', 'too']]


A = ['one2ye', 'loves', '20s']
B = ['me', 'too']

A.extend(B)	# extend 함수
print(A)
>>> ['one2ye', 'loves', '20s', 'me', 'too']



# B가 문자열일 때

A = ['one2ye', 'loves', '20s']
B = 'happy'

A.append(B)	# append 함수
print(A)
>>> ['one2ye', 'loves', '20s', 'happy']


A = ['one2ye', 'loves', '20s']
B = 'happy'

A.extend(B)	# extend 함수
print(A)
>>> ['one2ye', 'loves', '20s', 'h', 'a', 'p', 'p', 'y']

 

 

 

문제의 접근 방법

 

- 문제에서 제시된 "박스의 낭비된 용량은 박스의 용량에서 박스에 들어있는 책의 크기의 합을 뺀 값이다." 라는 말 속에 힌트가 있다.

 

 

 

내가 막혔던 부분

 

- 단순한 아이디어를 전혀 생각하지 못해서 이틀 넘게 고민했다. 박스의 용량과 책의 크기가 같은 값을 위주로 계산하고 일치한다면 해당 박스를 제거하는 식으로 구상을 했었다. 하지만 뚜렷한 규칙성이 보이지 않아서 번번히 실패했다.

 

 

 

문제 풀이 방법

 

(전체 박스들의 용량의 합) - (전체 책들의 크기의 합) = (전체 박스의 낭비된 용량의 합)

 

 

 

소스코드

n,m = map(int, input().split()) # 박스의 개수 n, 책의 개수 m

A = list(map(int, input().split()))   # 박스의 용량
B = list(map(int, input().split()))   # 책의 크기

print(sum(A)-sum(B))
728x90
반응형