250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- #코딩독학 #코딩인강 #코딩배우기 #개발자 #코딩이란 #코딩교육 #프론트엔드부트캠프 #백엔드부트캠프 #국비지원부트캠프 #개발자 #백엔드 #AI부트캠프 #개발자국비지원 #백엔드개발자
- #프론트엔드개발자
- 파이썬 #python #기초 #기본
Archives
- Today
- Total
아자아자 화이팅이닷 !
231104 오프라인 스터디 & 프로그래머스 문제풀기 본문
728x90
내가 안풀렸던 문제들을 오프라인 스터디에서 물어보았다 !
* 주사위 게임3 문제에서
한 스터디원분이 푼 코드는 아래와 같았다 !
def solution(a, b, c, d):
answer = 0
# same_list = [[],[],[],[]]
set_num = set([a,b,c,d])
cnt_list = []
for num in set_num:
cnt = [a,b,c,d].count(num)
cnt_list.append([num,cnt])
cnt_list.sort(key = lambda x : x[1], reverse = True)
print(cnt_list)
if cnt_list[0][1] == 4:
answer = 1111 * cnt_list[0][0]
elif cnt_list[0][1] == 3:
answer = (10 * cnt_list[0][0] + cnt_list[1][0]) ** 2
elif cnt_list[0][1] == 2:
if len(cnt_list) == 2:
answer = (cnt_list[0][0] + cnt_list[1][0]) * (abs(cnt_list[0][0] - cnt_list[1][0]))
elif len(cnt_list) == 3:
answer = (cnt_list[1][0] * cnt_list[2][0])
elif len(cnt_list) == 4:
answer = cnt_list[0][0]
return answer
구글링을 해보니까 제일 보편적인 코드는
def solution(a,b,c,d):
nums = [a,b,c,d]
counts = [nums.count(i) for i in nums]
if max(counts) == 4:
return 1111*a
elif max(counts) == 3:
p = nums[counts.index(3)]
q = nums[counts.index(1)]
return (10*p+q) ** 2
elif max(counts) == 2:
if min(counts) == 2:
return (a+c) * abs(a-c) if a==b else (a+b) * abs(a-b)
else:
p = nums[counts.index(2)]
return (a*b*c*d) // (p**2)
else:
return min(nums)
이 코드인 것 같았다 !
728x90
'TIL' 카테고리의 다른 글
231114 멋사 프론트엔드 온보딩 트랙 듣기 (0) | 2023.11.14 |
---|---|
231107 멋사 프론트엔드 온보딩 트랙 듣기 (0) | 2023.11.07 |
231030 프로그래머스 문제풀기 (0) | 2023.11.01 |
231028 프로그래머스 문제풀기 [고득점 Kit] (0) | 2023.10.29 |
231026 프로그래머스 문제풀기 (0) | 2023.10.27 |