티스토리 뷰
📌문제
A,B 두 사람이 볼링을 치고 있다. 두 사람은 서로 무게가 다른 볼링공을 고르려 한다. 볼링공은 총 N개가 있고 각 볼링공마다 무게가 적혀 있고, 공의 번호는 1번부터 순서대로 부여된다. 또한 같은 무게의 공이 여러개 있을 수 있지만 서로 다른 공으로 간주한다. 볼링공의 무게는 1~M까지 자연수 형태로 존재한다.
N개의 공의 무게가 각각 주어질 때 두 사람의 볼링공을 고르는 경우의 수를 구하시오.
📌풀이
무게마다 볼링공이 몇개 있는지 계산
A가 특정 무게의 볼링공 선택했을 때 B가 볼링공을 선택하는 경우를 차례대로 계산
📌코드
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
) # 무게가 i인 볼링공을 A가 선택하는 모든 경우에 대해 B가 남은 볼링 공 중 다른 무게의 공을 선택하는 경우의 수와 곱함
print(result)
📌참고
'코딩테스트' 카테고리의 다른 글
럭키 스트레이트 (0) | 2024.11.23 |
---|---|
무지의 먹방 라이브 (0) | 2024.11.22 |
만들 수 없는 금액 (4) | 2024.11.20 |
문자열 뒤집기 (0) | 2024.11.19 |
곱하기 혹은 더하기 (0) | 2024.11.18 |