풀이
- 딕셔너리를 활용해서 카운팅을 했는데
- 차라리 배열로 풀었다면 좀 더 간결한 코드가 될 듯 싶다.
- 그래서 딕셔너리의 키와 값들만 가지는 배열을 다시 만들어
- 하나씩 조건문을 활용하여 해결
def solution(a, b, c, d):
dic = {}
result = 0
for i in [a,b,c,d]:
if dic.get(i): dic[i] += 1
else: dic[i] = 1
dic_values = list(dic.values())
dic_keys = list(dic.keys())
if len(dic_values) == 1: result = dic_keys[0]*1111
elif len(dic_values) == 2:
if max(dic_values) == 3:
p_idx = dic_values.index(3)
p_val = dic_keys.pop(p_idx)
result = (10*p_val+dic_keys[0])**2
else: result = (dic_keys[0]+dic_keys[1])*abs(dic_keys[0]-dic_keys[1])
elif len(dic_values) == 3:
idx = dic_values.index(2)
dic_keys.pop(idx)
result = dic_keys[0]*dic_keys[1]
else: result = min(dic_keys)
return result
'알고리즘' 카테고리의 다른 글
[프로그래머스, 파이썬] 분수의 덧셈 (0) | 2024.02.22 |
---|---|
[프로그래머스, 파이썬] 둘만의 암호 (0) | 2024.02.21 |
[프로그래머스, 파이썬] 안전지대 (0) | 2024.02.21 |
[프로그래머스, 파이썬] 햄버거 만들기 (0) | 2024.02.20 |
[프로그래머스, 파이썬] 바탕화면 정리 (0) | 2024.02.20 |