볼링공 고르기_이코테 기출문제 [그리디]

Kim Hayeon·2022년 1월 27일
0

Algorithm Study

목록 보기
36/37
post-thumbnail

볼링공 고르기

A, B 두 사람이 볼링을 치고 있습니다. 두 사람은 서로 무게가 다른 볼링공을 고르려고 합니다.
볼링공은 총 N개가 있으며 각 볼링공마다 무게가 적혀 있고, 공의 번호는 1번부터 순서대로 부여됩니다.
또한 같은 무게의 공이 여러개 있을 수 있지만, 서로 다른 공으로 간주합니다. 볼링공의 무게는 1부터 M까지의 자연수 형태로 존재합니다.

문제

N개의 공의 무게가 각각 주어질 때, 두 사람이 볼링공을 고르는 경우의 수를 구하는 프로그램을 작성하세요.

입력 조건

첫째 줄에 볼링공의 개수 N, 공의 최대 무게 M이 공백으로 구분되어 각각 자연수 형태로 주어집니다.
(1 <= N <= 1,000, 1 <= M <= 10)
둘째 줄에 각 볼링공의 무게 K가 공백으로 구분되어 순서대로 자연수 형태로 주어집니다.
(1 <= K <= M)

출력 조건

첫째 줄에 두 사람이 볼링공을 고르는 경우의 수를 출력합니다.

입력 예시

5 3

1 3 2 3 2

출력 예시

8

풀이

리스트에 각 무게를 넣고 for문을 리스트의 길이만큼 돌면서 i부터 리스트의 길이만큼 for문을 한 번 더 돌린다.
(바깥 for문)i가 0일 때 (안쪽 for문)j는 1부터 리스트의 길이만큼 돌면서 i번째 원소와 비교한다.
이때 값이 같으면 무시하고 다르면 카운트해준다.

코드

N, M = map(int, input().split())
arr = list(map(int, input().split()))

cnt = 0
for i in range(len(arr)):
    for j in range(i,len(arr)):
        if arr[i]!=arr[j]:
            cnt +=1
print(cnt)
profile
우리는 무엇이든 될 수 있어

0개의 댓글