[BOJ] 2480 - 주사위 세개
사용 언어: Python3
문제
코드
내 풀이
# 같은 눈 3개 - 10000 + 눈*1000
# 같은 눈 2개 - 1000 + 눈*100
# 같은 눈 0개 - 가장 큰 눈*100
# 가장 빈도수가 높은 원소 반환
def most_frequent(data):
return max(data, key=data.count) # ✅
# input
numbers = list(map(int, input().split()))
ans = 0
if len(set(numbers)) == 1:
ans = 10000 + numbers[0] * 1000
elif len(set(numbers)) == 2:
ans = 1000 + most_frequent(numbers) * 100
else:
ans = max(numbers) * 100
# output
print(ans)
- 같은 눈이 2개만 나오는 경우를 계산하는게 핵심이다.
- 이때 같은 눈은 빈도수가 가장 많은 눈이 될 것이고, 빈도수가 가장 많은 눈을 구하기 위해 함수를 작성했다.
max()
함수에서key
를 이용하여 기준을 설정할 수 있다!
다른 풀이
# input
numbers = sorted(list(map(int, input().split()))) # ✅ 오름차순 정렬
ans = 0
if len(set(numbers)) == 1:
ans = 10000 + numbers[0] * 1000
elif len(set(numbers)) == 2:
ans = 1000 + numbers[1] * 100 # ✅
else:
ans = numbers[2] * 100
# output
print(ans)
- 마찬가지로 같은 눈이 2개만 나오는 경우를 확인하자.
numbers
리스트를 오름차순 정렬하면, 같은 눈이 2개인 경우에는numbers[0]==numbers[1]
이거나numbers[1]==numbers[2]
일수밖에 없다.- 따라서
numbers[1]
은 무조건 가장 많은 눈이다.
💛 개인 공부 기록용 블로그입니다. 👻