반응형
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차원동전뒤집기
- 메뉴리뉴얼 파이썬
- 확률과우도
- 모델경량화
- 딥러닝파라미터
- 프로그래머스 누적합
- 스타수열
- 딥러닝 가중치 갱신
- 스타수열 파이썬
- 광고삽입 파이썬
- 로지스틱 최대우도
- 딥러닝학습
- k겹 교차검증
- 카카오 메뉴리뉴얼
- 카카오 코테 메뉴리뉴얼
- 자율성장 인공지능
- MLE
- 프로그래머스 스타수열
- 비트마스킹
- 딥러닝
- 프로그래머스 2차원동전뒤집기 파이썬
- 프로그래머스 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 |