ボウリングを選ぶ[グリディ]


# 서로 무게가 다른 볼링공을 고르려고 함
# 볼링공 N개, 무게가 적혀있음
# 볼링공 무게는 1~M까지 자연수 형태
# 볼링공 번호의 조합을 구하시오.


n,m=map(int,input().split())
array=list(map(int,input().split()))
count=0

# 볼링공을 리스트로 만들어 탐색하고 같은 무게인지 체크하기

for i in range(len(array)-1):
    for j in range(i+1,len(array)):
        if array[i]==array[j]:
            continue
        else:
            count+=1

print(count)
            
  • ボウリングをリストし、i番ボウリングをi+1番からn(=len(array)番ボウリングと比較した後、重量の異なる
  • のみ抽出する

    よい草

    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] # A가 B보다 먼저 선택할 수 있는 무게가 i인 볼링공 개수 제외
                    # 서로 무게가 달라야 하기 때문
        result+=array[i]*n # B가 무게 i인 볼링공을 선택하는 경우의 수와 곱하기
    
    print(result)
  • ボウリングの重量は1-10の間にあるので、それをリストに並べて、Aが先に選択して、残りのBが選択して、
  • を解くことができます.
  • より短い時間です.