취업/TIL

20231108_주사위게임_[Python알고리즘]

개발자 덕구🐾 2023. 11. 8. 22:52
728x90

힝구

 

 

 

 

 

오늘도 역시 ~ 

 

인프런의 김태원 - 파이썬 알고리즘을 풀었다. 

이름은 주사위게임 

 

 

3개를 던지는데 

3개, 2개 , 1개가 같은 눈이 나오는 경우를 나누어 

상금이 달라진다. 

 

나는 갸우뚱하다가 문제를 풀었고 성공은했다. 

 

if __name__=="__main__" :
    n = int(input())
    answer = []
    for i in range(n):
        arr_input = list(map(int,input().split()))
        arr = [0]*7
        max_idx = 0
        max_val = 0
        for x in arr_input :
            arr[x] +=1 
        if max(arr) != 1 :
            for idx, val in enumerate(arr) :
                if val == max(arr) : 
                    max_idx = idx 
                    break
            if max(arr) ==2 : 
                answer.append(1000+max_idx*100)
            else :
                answer.append(10000+max_idx*1000)
        else : 
            for idx, val in enumerate(arr) :
                if val == 1 and idx > max_idx : 
                    max_idx = idx
            answer.append(max_idx * 100)
    print(max(answer))

 

 

참 하드코딩 기가막히게 했다. 

 

 

강사님의 코드는 ?! 

 

 

 


 

 

아니 .... 이거 알았냐구 .. 

 

arr_input = input().split()
print(arr_input)

 

이렇게 하면  3 3 6을 input으로 넣었을 때 

결과가 

['3', '3', '6'] 이렇게 된다. 

 

아 이렇게 하나씩 들어가서 str형태로 리스트화 되는구낭 

 

 

if __name__=="__main__" :
    n = int(input())
    res = 0 
    for i in range(n):
        tmp = input().split()
        tmp.sort()
        a,b,c = map(int,tmp)
        if a == b and b == c:  # 3개가 같은경우 
            money = 10000 + a *1000 
        elif a==b or a==c : # 2개가 같은 경우 
            money = 1000 + a * 100  
        elif b == c : # 2개가 같은경우 
            money = 1000 + b * 100
        else : money = c*100  # 다 다른경우 (이미 sort된것이므로 c로 하면됨)
        if money > res : res = money 
    print(res)

 

 

참 간단하고 이해하기 쉽게 코드를 만드셨다. 

 

 

 

내가 코딩 실력이 많이 부족하구나 ... 😢

 

 

 

+ ) sort와 sorted 차이 아시죠 ? 

.sort() 하면 . 앞에 붙은 리스트가 바로 정렬됩니다. 

sorted( "리스트 자리" ) 하면 sorted 함수의 인수로 들어간 리스트가 정렬된 값을 반환합니다. 

반응형