티스토리 뷰

코딩테스트

볼링공 고르기

ajaa 2024. 11. 21. 14:01

📌문제

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)

 

📌참고

https://g.co/kgs/eyd5SSd

 

이것이 취업을 위한 코딩 테스트다 with 파이썬

IT 취준생이라면 누구나 입사하고 싶은 카카오・삼성전자・네이버・라인!취업의 성공 열쇠는 알고리즘 인터뷰에 있다! IT 취준생이라면 누구나 가고 싶어 하는 카카오, 라인, 삼성전자의 2016년

www.google.com

 

 

'코딩테스트' 카테고리의 다른 글

럭키 스트레이트  (0) 2024.11.23
무지의 먹방 라이브  (0) 2024.11.22
만들 수 없는 금액  (4) 2024.11.20
문자열 뒤집기  (0) 2024.11.19
곱하기 혹은 더하기  (0) 2024.11.18
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함