반응형
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 |
Tags
- 자율성장 인공지능
- AI경량화
- 머신러닝 학습 검증
- 스타수열
- 과적합방지
- 비트마스킹
- 프로그래머스 누적합
- 확률과우도
- 프로그래머스 2차원동전뒤집기
- 딥러닝
- 프로그래머스 스타수열
- 광고삽입 파이썬
- 스타수열 파이썬
- 메뉴리뉴얼 파이썬
- 딥러닝학습
- 프로그래머스광고삽입
- 카카오 코테 메뉴리뉴얼
- 2차원동전뒤집기
- k겹 교차검증
- 데이터축소
- 인공지능 경진대회
- 프로그래머스
- 모델경량화
- 로지스틱 최대우도
- 카카오 메뉴리뉴얼
- MLE
- 프로그래머스 2차원동전뒤집기 파이썬
- 인공신경망 학습
- 딥러닝파라미터
- 딥러닝 가중치 갱신
Archives
- Today
- Total
머신러닝 개발자의 러닝머신
[프로그래머스: 시소 짝꿍] (Python) 본문
반응형
문제 - 문제링크

문제 풀이 아이디어
- weights 순회하면서 dic에 해당 무게를 가진 사람 수 카운팅
- 각 무게를 탐색하면서
- (1) 무게가 같은 사람들 -> nC2 , 두명을 뽑아 짝꿍 만들기
- (2) 무게가 같지 않은 경우 [1:2, 2:3, 3:4] 비율을 만족하는 무게를 가진 사람들과 짝꿍 가능
-> 해당 무게의 사람 수*(비율을 만족하는 무게의 사람들의 수
알아둘 개념
- dic.get(찾는 원소, 없으면 대신 리턴할 값) -> x in dic 하지 않고 이렇게 없으면 바로 리턴할 값을 지정하는 매소드 활용하기
리뷰
- 처음에 모든 사람들의 무게를 서로 한 번씩 비교함-> 시간초과 O(N^2)
- 무게가 같은 사람이 여러명 있으면 굳이 또 비교하는 과정이 없어도 됨-> dic 활용 로직으로 시간복잡도 개선함
코드 구현
def solution(weights):
answer = 0
dic = {}
for w in weights:
dic[w] = dic.get(w, 0)+1
# print(dic)
for w in dic.keys():
if dic[w] >1: #같은 무게인 사람들
answer += (dic[w]*(dic[w]-1))/2
answer += dic[w]*(dic.get(w*2, 0)+dic.get(w*(2/3), 0)+dic.get(w*(3/4), 0))
return answer반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스-마법의 엘리베이터] (Python) (0) | 2023.04.12 |
|---|---|
| [2023 KAKAO TECH INTERNSHIP 코딩 테스트 공부] (Python) (0) | 2023.04.12 |
| [프로그래머스: 인사고과] (Python) (0) | 2023.04.11 |
| [2023KAKAO BLIND RECRUITMENT-개인정보 수집 유효기간] (Python) (0) | 2023.04.11 |
| [2023KAKAO BLIND RECRUITMENT-택배 배달과 수거하기] (0) | 2023.04.11 |