국문과 유목민

[그리디] 볼링공 고르기 본문

알고리즘_코딩테스트/이것이 코딩테스트다

[그리디] 볼링공 고르기

논곰 2021. 12. 12. 00:55
"이것이 코딩테스트다(나동빈 저)"에서 나온 문제에 대한 코드를 다루고 있습니다.
문제에 대한 구체적인 설명과 조건 등은 책을 참고해주시기 바랍니다.

소요시간: 10분 30초

1. 문제 설명

- 친구 A와 B가 볼링공을 고를 때 서로 다른 무게를 고르고자 한다. 주어진 볼링공 중에서 이 둘이 고를 수 있는 경우의 수는 몇 개인가?

2. 접근 방식

- 바로 이전 문제에서 조합을 활용해서 문제를 풀어서 쉽게 접근할 수 있었다.

- 조합으로 문제를 고르고, 나온 조합들 중 값이 같은 것들을 빼줌으로써 답을 구했다. 

- 주어진 조건의 범위가 적어서 일일이 다 찾아도 될 것 같다는 생각을 했다.

3. 코드

from itertools import combinations

def bowling(n, m, ls):
    com = list(combinations(ls, 2))
    answer = 0
    for i, j in com:
        if ls[i-1] != ls[j-1]:
            answer+=1 
    return answer

4. 코멘트

- combinations 함수 최고

Comments