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
- programmers
- level3
- group by
- 스택
- 브루트포스
- DP
- Typescript
- 자바스크립트
- Stack
- C언어
- Lv. 0
- javascript
- 소프티어
- 다이나믹프로그래밍
- bfs
- dfs
- Lv. 2
- 너비 우선 탐색
- level 3
- 파이썬
- Python
- Java
- SQL 고득점 KIT
- Lv. 3
- Lv. 1
- Dynamic Programming
- 타입스크립트
- 문자열
- softeer
- 프로그래머스
Archives
- Today
- Total
몸과 마음이 건전한 SW 개발자
Softeer level3 [21년 재직자 대회 본선] 코딩 테스트 세트 Python 본문
문제 링크 : https://softeer.ai/practice/info.do?idx=1&eid=630
Softeer
연습문제를 담을 Set을 선택해주세요. 취소 확인
softeer.ai
정답 코드
import sys
input = sys.stdin.readline
N, T = map(int, input().split())
def check(value):
now = confirmed_level[0]
for idx in range(N-1):
if now >= value:
now = confirmed_level[idx+1] + neutral_level[idx]
elif now + neutral_level[idx] >= value:
now = confirmed_level[idx+1] + (now + neutral_level[idx] - value)
else:
return False
if now >= value:
return True
else:
return False
def binarySearch(start, end):
if start == end:
return start
mid = (start + end + 1) // 2
if check(mid):
return binarySearch(mid, end)
else:
return binarySearch(start, mid-1)
for tc in range(T):
confirmed_level = [0 for _ in range(N)]
neutral_level = [0 for _ in range(N-1)]
scenario = list(map(int, input().split()))
for idx in range(N-1):
confirmed_level[idx] = scenario[2*idx]
neutral_level[idx] = scenario[2*idx + 1]
confirmed_level[N-1] = scenario[-1]
print(binarySearch(0, 2*10**12))
어려운점
1. 이진법에 대해서 먼저 떠오르긴 했다. 하지만 start값과 end값을 어떻게 설정할지 고민이었다.
2. 이진탐색에 check라는 함수를 또 만들어야 했는데 아직 이해가 제대로 되지 않았다.
느낀점
- 무조건 다시 풀어보고 이진탐색에 대해 공부해야겠다.
'알고리즘' 카테고리의 다른 글
Softeer level3 조립라인 Python (2) | 2023.08.27 |
---|---|
Softeer level3 [21년 재직자 대회 예선] 좌석 관리 Python (0) | 2023.08.26 |
Softeer level3 [HSAT 3회 정기 코딩 인증평가 기출] 플레이페어 암호 Python (2) | 2023.08.21 |
Softeer level3 스마트 물류 Python (0) | 2023.08.07 |
Softeer level3 택배 마스터 광우 Python (0) | 2023.08.04 |