반응형
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
- 과적합방지
- 딥러닝파라미터
- 프로그래머스 2차원동전뒤집기
- 스타수열 파이썬
- 로지스틱 최대우도
- 딥러닝
- 카카오 코테 메뉴리뉴얼
- 스타수열
- 인공지능 경진대회
- 프로그래머스광고삽입
- MLE
- 딥러닝학습
- 카카오 메뉴리뉴얼
- 딥러닝 가중치 갱신
- 확률과우도
- 프로그래머스 2차원동전뒤집기 파이썬
- 프로그래머스
- 2차원동전뒤집기
- 프로그래머스 스타수열
- 인공신경망 학습
- 광고삽입 파이썬
- 메뉴리뉴얼 파이썬
- 자율성장 인공지능
- 데이터축소
- 모델경량화
- 비트마스킹
- 머신러닝 학습 검증
- 프로그래머스 누적합
- k겹 교차검증
- AI경량화
Archives
- Today
- Total
머신러닝 개발자의 러닝머신
✨[2022KAKAO TECH INTERNSHIP: 두 큐 합 같게 만들기](Python) 본문
반응형
문제
https://school.programmers.co.kr/learn/courses/30/lessons/118667
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
유형
- 투포인터
- 이분탐색
알아야 하는 것
- 이분탐색 (Binary Search)
- 문제가 주어지면 가장 단순한 형태로 바꿔보자
문제풀이
- 두 큐의 합이 서로 같다는 것은 한 큐의 원소의 합이 전체의 절반이라는 것임 !
-> 큐 하나에 대해서만 생각하자 - q = queue1 + queue2 , 새로운 전체 큐에 대해서 0~ len(q)사이의 부분 큐의 합이 전체 합의 절반이 되는 경우가 있는지 살펴보기
-> 한 큐에 대해서 살펴보면 된다는 것 ok, 그런데 왜 그 큐의 left, right 인덱스가 0~len(q) 사이에 존재하는 경우만 살펴보면 되는가?
-> 왜냐하면, left > right 인 경우(== right 인덱스가 범위를 벗어난 경우) 는 이미 0~len(q) 사이의 큐 고려할 때 따진 경우와 동치임 (ex. [2:4]인 큐의 합이 절반과 같은 지 == [left4: right2]큐의 합이 절반과 같은지) - left idx, right idx 를 따라 전체 리스트에서 합이 절반보다 작으면 right +1, 절반보다 크면 left +1 수행하기
- 절대 불가능한 경우 return -1
-> 전체 합이 홀수인 경우
-> 절반인 경우를 못 찾고 left > right 넘는 경우
코드
def solution(queue1, queue2):
answer = 0
q = queue1+queue2
total = sum(q)
if total% 2!=0: #전체 합이 홀수인 경우 불가능
return -1
goal = total//2
cur_sum = sum(queue1)
left, right = 0, len(queue1)-1
while left<= right:
if cur_sum== goal:
return answer
elif cur_sum < goal: #큐의 합이 절반보다 작으면 right +1, right 범위를 벗어나면 종료
right += 1
if right >= len(q): #범위를 벗어나면 종료
return -1
cur_sum += q[right]
answer += 1
else: #큐의 합이 절반보다 크면 left +1
cur_sum -= q[left]
left += 1
answer += 1
return -1
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스: 무인도 여행(Python)] (1) | 2023.04.23 |
---|---|
[프로그래머스: 둘만의 암호(Python)] (0) | 2023.04.23 |
[프로그래머스-디펜스 게임] (Python) (0) | 2023.04.12 |
[프로그래머스: 테이블 해시 함수] (Python) (0) | 2023.04.12 |
[프로그래머스: 문자열 나누기](Python) (0) | 2023.04.12 |