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 |
Tags
- segmentation map
- 프로그래머스
- transformer
- rectified flow
- image editing
- Vit
- score distillation
- Python
- 네이버 부스트캠프 ai tech 6기
- masactrl
- diffusion models
- flow matching
- 3d generation
- diffusion
- Programmers
- video generation
- BOJ
- segmenation map generation
- 논문리뷰
- VirtualTryON
- emerdiff
- inversion
- 3d editing
- dreammotion
- 코딩테스트
- diffusion model
- DP
- visiontransformer
- 코테
- video editing
Archives
- Today
- Total
평범한 필기장
[BOJ_Python] 20300_서강근육맨 본문
https://www.acmicpc.net/problem/20300
20300번: 서강근육맨
PT 첫째 날에 $1$과 $4$를 선택하고, 둘째 날에 $2$와 $3$을 선택하고, 마지막 날에 $5$를 선택하면 $M$은 $5$가 되며, 이때가 $M$이 최소일 때이다.
www.acmicpc.net
내가 생각한 풀이방식
- 일단 운동기구의 개수가 홀수인지 짝수인지를 나누어서 생각한다
- 짝수면 근손실 리스트를 오름차순으로 정렬을 하고 1번째와 마지막번째 값을 더한 값, 2번째와 (마지막 -1)번째 값을 더한 값 ,,, 을 구해서 가장 그 중 가장 큰 값이 M
- 홀수면 1번째와 (마지막-1)번째 값을 더한 값, 2번째와 (마지막-2)번째 값을 더한 값,,,, 그리고 마지막 값을 구해서 그 중 가장 큰 값이 M
내 코드
import sys
n = int(input())
lst = list(map(int, sys.stdin.readline().split()))
lst.sort()
n = len(lst)
if n % 2 == 0:
cnt = 0
for i in range(int(n/2)):
k = lst[i] + lst[n - i - 1]
if k > cnt:
cnt = k
print(cnt)
else:
cnt = 0
for i in range(n//2):
k = lst[i] + lst[n - i - 2]
if k > cnt:
cnt = k
if lst[-1] > cnt:
cnt = lst[-1]
print(cnt)
'코딩 테스트 준비 > BOJ' 카테고리의 다른 글
[BOJ_Python] 1080_행렬 (0) | 2023.03.23 |
---|---|
[BOJ_Python] 21314_민겸 수 (0) | 2023.03.22 |
[BOJ_Python] 11508_2+1 세일 (0) | 2023.03.19 |
[BOJ_Python] 14916_거스름돈 (0) | 2023.03.18 |
[BOJ_Python] 21919_소수 최소 공배수 (0) | 2023.03.16 |