프로그래머스__[문제풀이: lv2. 주사위 게임]

On.


Algorithm


1. 수도코드

0) 문제 유형 파악: 탐색횟수 최대 27000번 👉 완전 탐색 문제 (나는 O(N^3)으로 풀음... 더 좋은 방법 탐구해봄)

1) 1부터 S1, S2, S3까지의 리스트 생성

2) s1, s2, s3에서 1개씩 선택하여 조합생성

3) 조합들의 합에서 1 더한 값이 몬스터가 있는 위치라면 meet += 1

  • 모든 조합을 세기 위해서 all_count += 1

4) 몬스터를 만나지 않을 경우를 계산해서 return

  • 계산식 : int((1 - meet / all_case) * 1000)

2. 구현코드

def solution(monster, S1, S2, S3):
    s1, s2, s3 = range(1, S1+1), range(1, S2+1), range(1, S3+1)
    dic = dict.fromkeys(monster)
    total = 0
    fail = 0
    for i in s1:
        for j in s2:
            for k in s3:
                total += 1
                if i+j+k+1 in dic:
                    fail += 1
    return int((1- fail/total) * 1000)


Off.


프론트와 백을 넘나드는 리드 개발자가 되는 그날까지 🔥🔥🔥

좋은 웹페이지 즐겨찾기