💻 입력 조건

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

💻 출력 조건

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

💻 입력 예시 1

5 3
1 3 2 3 2

💻 출력 예시 1

8

💻 입력 예시 2

8 5
1 5 4 3 1 4 5 2

💻 출력 예시 2

25

📖 문제 해결

A가 i번째 공을 선택하면 B는 i번 이후의 공을 선택하도록 코드를 작성하였습니다. (이유는 코드 아래에 작성하였으니 확인 부탁드립니다:D) 그렇게 중첩된 for 문을 이용하여 하나하나씩 A가 선택한 공과 B가 선택한 공을 비교해가며 가능한 경우의 수를 세어 주었습니다.

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

count = 0
for i in K:
    for j in K[i:]:
        if i != j:
            count += 1
            
print(count)

처음에는 A와 B가 고른 것을 구분하여 원래 정답의 2배의 값이 나왔는데 책에는 A와 B가 고른 것을 구분하지 않고, 무게가 다른 2개를 뽑는 것으로 정답이 나와 있었습니다. A와 B가 선택한 것에 대해 구별하지 않는 이유에 대해서는 잘 모르겠습니다🥲 시간이 날 때 출판사 홈페이지에서도 혹시라도 오류가 있는 것은 아닐지 확인해 봐야겠습니다..!🥲

profile
AI를 공부하고 있는 학생입니다:)

0개의 댓글