컴공생의 다이어리
볼링공 고르기 본문
A, B 두 사람이 볼링을 치고 있다. 서로 무게가 다른 볼링공을 고르려고 한다. 볼링공은 총 N개가 있으며 각 볼링공마다 무게가 적혀 있고, 공의 번호는 1번부터 순서대로 부여된다. 또한 같은 무게의 공이 여러 개 있을 수 있지만, 서로 다른 공으로 간주한다. 볼링공의 무게는 1부터 M까지의 자연수 형태로 존재한다.
질문
N개의 공의 무게가 각각 주어질 때, 두 사람이 볼링공을 고르는 경우의 수를 구하는 프로그램을 작성하시오.
구현한 코드
아래는 파이썬으로 구현한 코드이다.
N,M=map(int,input().split())
ball=list(map(int,input().split()))
arr=[0]*11
for x in ball:
arr[x]+=1
result=0
for i in range(1,M+1):
N-=arr[i]
result+=arr[i]*N
print(result)
아래는 c/c++으로 구현한 코드이다.
#include<iostream>
#include<algorithm>
int main() {
int N,M;
int ball;
int* arr = new int[11]{ 0, };
int result = 0;
std::cin >> N >> M;
for (int i = 0; i < N; i++) {
std::cin >> ball;
arr[ball] += 1;
}
for (int i = 1; i < M+1; i++) {
N -= arr[i];
result += arr[i] * N;
}
std::cout << result;
return 0;
}
www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9791162243077
728x90
반응형
'Development > Algorithm & Coding Test' 카테고리의 다른 글
상하좌우 (0) | 2020.12.21 |
---|---|
[프로그래머스] Greedy - 체육복 (0) | 2020.12.18 |
만들 수 없는 금액 (0) | 2020.12.18 |
문자열 뒤집기 (0) | 2020.12.18 |
곱하기 혹은 더하기 (0) | 2020.12.18 |
Comments