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
- react
- 동읍면 DB
- restapi
- riceteacatpanda
- 정보보호병 후기
- 메모리 포랜식
- 인턴 지원
- DBMS
- frontend
- 소프트웨어 개발보안 경진대회
- Forensic 절차
- mysql
- webhacking 처음
- reversing.kr
- 3단계 지역 DB
- Database
- 인턴 후기
- 방명록 만들기
- PyAmdecoder
- jsp
- spring
- 행정지역 DB
- 네이버 인턴
- 소개딩
- Layered Architecture
- SessionAttribute
- JSTL
- Django
- ㅁㅇㅂ??ㅇㅈㄷ ㅎㅇㅌ...
- EER
Archives
- Today
- Total
웹찢남
[백준 1744 수 묶기 문제] PYTHON 본문
그리디 알고리즘 문제다.
단순한 문제인데 골드로 평가된 이유는 hidden case 가 좀 있다.
신경써야 할 사항은 1. 음수와 음수의 곱 2. 음수와 0의 곱 3. 1의 존재이다.
이걸 생각하며 코드를 짜면 아래처럼 나온다.
from sys import stdin
input = stdin.readline
t = int(input())
minus = 0
oneval = 0
gd = []
for _ in range(t):
tmp = int(input())
if tmp <= 0:
minus += 1
elif tmp == 1:
oneval += 1
gd.append(tmp)
gd.sort()
minusgd = gd[:minus]
plusgd = gd[minus+oneval:][::-1]
answer = 0
for a, i in enumerate(minusgd[::2]):
try:
answer += i*minusgd[2*a+1]
except:
answer += i
for a, i in enumerate(plusgd[::2]):
try:
answer += i*plusgd[2*a+1]
except:
answer += i
print(answer+oneval)
'백준 Algorithm' 카테고리의 다른 글
[백준 5502 펠린드롬 문제] PYTHON (0) | 2021.10.08 |
---|---|
[백준 1937 욕심쟁이 판다 문제] PYTHON (0) | 2021.09.10 |
[백준 1202 보석 도둑 문제] PYTHON (0) | 2021.09.09 |
[백준 4358 생태학 문제] PYTHON (0) | 2021.09.09 |
[백준 1309 동물원 문제] PYTHON (0) | 2021.09.07 |
Comments