Notice
Recent Posts
Recent Comments
Link
DevKim
[Python] 백준 #1744 수 묶기 본문
728x90
1744번: 수 묶기
길이가 N인 수열이 주어졌을 때, 그 수열의 합을 구하려고 한다. 하지만, 그냥 그 수열의 합을 모두 더해서 구하는 것이 아니라, 수열의 두 수를 묶으려고 한다. 어떤 수를 묶으려고 할 때, 위치에
www.acmicpc.net
result=0
n=int(input())
data=[]
for i in range(n):
data.append(int(input()))
#음수 따로,양수따로 리스트 분리 후, 양수는 내림차순, 음수는 오름 차순으로..
m_data=[i for i in data if(i<=0)]
m_data=sorted(m_data) #오름차순
p_data=[i for i in data if(i>0)]
p_data=sorted(p_data,reverse=True)
#마이너스,0 리스트 부터
if(len(m_data)%2==0): # 데이터 개수가 짝수일때
for i in range(len(m_data)-1):
if(i%2==0):
result=result+(m_data[i]*m_data[i+1])
else:
for i in range(len(m_data)-1):
if(i%2==0):
result=result+(m_data[i]*m_data[i+1])
result+=m_data[len(m_data)-1]
#양수 리스트
if(len(p_data)%2==0): # 데이터 개수가 짝수일때
for i in range(len(p_data)-1):
if(i%2==0):
if(p_data[i+1]==1): #1이면 더하는게 더 큼
result=result+(p_data[i]+p_data[i+1])
else:
result=result+(p_data[i]*p_data[i+1])
else:
for i in range(len(p_data)-1):
if(i%2==0):
if(p_data[i+1]==1): #1이면 더하는게 더 큼
result=result+(p_data[i]+p_data[i+1])
else:
result=result+(p_data[i]*p_data[i+1])
result+=p_data[len(p_data)-1]
print(result)
728x90
'알고리즘 PS' 카테고리의 다른 글
[Python] 백준 #2437 저울 (0) | 2020.12.19 |
---|---|
[Python] 백준 #4796 캠핑 (0) | 2020.12.19 |
[Python] 백준 #1138 한 줄로 서기 (0) | 2020.12.19 |
[Python] 백준 #1080 행렬 (0) | 2020.12.19 |
[Python] 백준 #1946 신입 사원 (0) | 2020.12.19 |
Comments