백준/ Silver 4 문제 , 백준 파이썬 13900 , 순서쌍의 곱의 합
Check Point ! ( 해당사항 ✓체크 )
1. 막힘 없이 수월하게 풀린 문제인가?
2. 1시간이내로 풀렸던 문제인가?
3. 1시간 이상 or 며칠을 두고 풀어봤더니 풀린 문제인가?
4. 시간을 써도 도무지 풀 수 없는 문제인가?
5. 솔루션을 찾아봤는가?
-------------------------------------------------------------------------------------------
난이도 체감
1. 최상
2. 상
3. 중
4. 하
<이해도>
1. 완벽히 이해
2. 다소 헷갈리는 부분들이 있음
3. 이해 못함
<덧붙일 말>
하나하나 다 풀려하지말고 요령을 찾아야하는 문제.
하나하나 다 곱해서 더하나 다더한다음 한번에 곱하나 똑같다....
<문제 출처>
https://www.acmicpc.net/problem/13900
------------------------------------------------------------------------------------------------------------------------------
1) 시간 초과
백트래킹으로 풀려던 코드
시간 초과 발생
2) 시간 초과
이리저리 코드를 바꾸다가 풀리던 코드였다.
시간 초과가 뜨기는 하지만 문제에서 요구하는 해답은 잘나옴.
3) 해답
좀 어이 없게 풀리는 문제이다.
생각해보면 당연한건데....
10을 1 2 3 4 5 6 7 8 9 10 에 하나씩 곱해서 더한값이나
10을 55에 곱한 값이나 같다.
차이는 연산 횟수.
이 문제는 이 연산 횟수를 줄이는 것이 핵심인 문제이다.
위의 다른 코드들도 다 풀리긴하지만, 연산 횟수에서 해답과 확연히 차이가 난다.
N이 100000 까지 받으니, 엄청 큰 차이...
다른 블로그 풀이들도 다 이 방법으로 풀었더라... 한시간 동안 끙끙대다가 서치해서 얻은 허무한 해답.
그래도 여러 방면으로 풀어보려 했던것이 도움이 된듯하다.
------------------------------------------------------------------------------------------------------------------------------
정답
N=int(input())
nums=list(map(int,input().split()))
hap=sum(nums)
sum=0
for num in nums:
hap-=num
sum+=num*hap
print(sum)
'알고리즘 공부 > 백준 - 파이썬' 카테고리의 다른 글
백준/ Silver 5 문제 , 백준 파이썬 15720 , 카우버거 (0) | 2022.04.23 |
---|---|
백준/ Silver 5 문제 , 백준 파이썬 3135 , 라디오 (0) | 2022.04.23 |
백준/ Gold 5 문제 , 백준 파이썬 1759 , 암호 만들기 (0) | 2022.04.14 |
백준/ Silver 5 문제 , 백준 파이썬 9625 , BABBA (0) | 2022.04.12 |
백준/ Silver 5 문제 , 백준 파이썬 16171, 나는 친구가 적다 (Small) (0) | 2022.04.07 |