-문제: https://www.acmicpc.net/problem/2217

 

-정답풀이 1:

n=int(input())
s=[]
for _ in range(n):
    s.append(int(input()))
s.sort(reverse=True)
for i in range(n):
    s[i]=s[i]*(i+1)
print(max(s))

 

-정답풀이2:

def solution():
    ans=0
    s.sort(reverse=True)
    for i in range(n):
        s[i]=s[i]*(i+1)
    return max(s)

n=int(input())
s=[]
for _ in range(n):
    s.append(int(input()))
print(solution())

-틀린풀이:

  • 주어진 중량의 min,max만 생각하는 것이 아니라 인덱스 곱한 값들 중에 max값을 구하는 문제였다 

-문제: https://www.acmicpc.net/problem/5585

 

처음에 풀었던 문제와 동일한 문제 

 

-정답풀이:

n=int(input())
exchange=1000-n
s=[500,100,50,10,5,1]
cnt=0
for i in s:
    cnt += exchange//i
    exchange = exchange%i
print(cnt)

-6/24 풀이

n=1000-int(input())
coins = [500,100,50,10,5,1]
answer=0
for i in coins:
    quotient = n//i
    if quotient !=0:
        answer+= quotient
        n-= i*quotient
print(answer)

-문제: https://www.acmicpc.net/problem/1541

 

1541번: 잃어버린 괄호

첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다

www.acmicpc.net

 

-정답풀이: 

 

  • 주어진 식을 최솟값으로 만들기 위해서는 '-'를 기준으로 나누면 된다.
  • '-'를 기준으로 식을 나누고
  • '+'가 있는 식들은 따로 더해주고
  • 마지막에 첫번째 수에서 하나씩 빼준다

 

 

참고한 블로그: https://pacific-ocean.tistory.com/228

 

[백준] 1541번(python 파이썬)

문제 링크: https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리

pacific-ocean.tistory.com

 

-문제: https://www.acmicpc.net/problem/1026

 

1026번: 보물

첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거

www.acmicpc.net

비교적 쉬웠던 문제

 

-정답풀이:

n= int(input())
data1=list(map(int,input().split()))
data2=list(map(int,input().split()))

data1.sort()
data2.sort(reverse=True)
answer=0
for i in range(n):
    answer+=(data1[i]*data2[i])
print(answer)

+ Recent posts