Algorithm/Programmers

[그리디] 볼링공 고르기 (파이썬)

그랴 2022. 7. 16. 23:13

A, B 두 사람이 볼링을 치고 있다.

두 사람은 서로 무게가 다른 볼링공을 고르려고 한다.

같은 무게의 공이 여러 개 있을 수 있지만, 서로 다른 공으로 간주한다.

두 사람이 볼링공을 고르는 경우의 수를 구하는 프로그램을 작성하세요.


#개수 최대 무게
 n, m = map(int, input().split())

 #각 볼링공 무게
 k = list(map(int, input().split()))

#두 사람이 볼링공을 고르는 경우의 수
#(단, 서로 무게가 달라야 함)
result = 0

#1번 공과 그 다음 공을 비교해보면서 무게가 다를 때만 result += 1

i = 0
j = i + 1
while i < n:
  j = 1
  while j < n:
    if k[i] != k[i+j]:
      result += 1
      # print(i+1, i+j+1)
    j += 1
    if i+j == n: break;
  i += 1
  # print(i)
  if i == n-1 : break;

print(result)

볼링공의 무게가 달라야 한다는 말을 못봐서... 이거 걍 조합으로 풀면 되는 거 아니야? 라고 생각했었음 ..ㅎㅎㅎ

 

1번 공과 그 다음 공을 비교해보면서 무게가 다를 때만 카운트를 해주고, 그 다음 2번 공과 그 다음공을 비교.. 이런 식으로 작성했다.

while 중첩문이 헷갈려서 구구단 만드는 코드를 보고 복습했다.