728x90
반응형
볼링공 고르기
난이도 : 下 풀이 시간 : 30분
시간 제한 : 1초 메모리 제한 : 128 MB
해답
n, m = map(int, input().split())
k = list(map(int, input().split()))
array = [0] * 11
count = 0
for i in k:
array[i] = array[i] + 1
for i in range(1, m+1):
n = n - array[i]
count = count + (array[i] * n)
print(count)
예시
n, m = map(int, input().split())
data = list(map(int, input().split()))
# 1부터 10까지의 무게를 담을 수 있는 리스트
array = [0] * 11
for x in data:
# 각 무게에 해당하는 볼링공의 개수 카운트
array[x] += 1
result = 0
# 1부터 m까지의 각 무게에 대하여 처리
for i in range(1, m + 1):
n -= array[i] # 무게가 i인 볼링공의 개수(A가 선택할 수 있는 개수) 제외
result += array[i] * n # B가 선택하는 경우의 수와 곱해주기
print(result)
해설
A가 특정 무게를 선택하였을 때 B가 선택하는 경우를 차례대로 계산하면 됩니다.
728x90
반응형
'알고리즘 (Python) > 이것이 코딩 테스트다 with 파이썬' 카테고리의 다른 글
[구현 알고리즘] 럭키 스트레이트 - 파이썬(python) (0) | 2021.12.15 |
---|---|
[그리디 알고리즘] 무지의 먹방 라이브 - 파이썬(python) (0) | 2021.12.14 |
[그리디 알고리즘] 만들 수 없는 금액 - 파이썬(python) (0) | 2021.08.04 |
[그리디 알고리즘] 문자열 뒤집기 - 파이썬(python) (0) | 2021.08.04 |
[그리디 알고리즘] 곱하기 혹은 더하기 - 파이썬(python) (0) | 2021.07.27 |