알고리즘 문제 풀이: 파이썬/BOJ

[BOJ_1912] 연속합

hueco 2022. 8. 11.

 

📌 문제 링크: https://www.acmicpc.net/problem/1912

 

1912번: 연속합

첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다.

www.acmicpc.net

 

내 풀이(Success) :

점화식을 이용하지 않은 풀이

 

참고용 풀이(Sucess) :

점화식을 이용한 풀이

 

🧐 Review:

 평소처럼 문제의 유형을 확인하고 해당 유형에 맞게 풀이를 고민해봤지만 어떻게 이 문제를 dp로 풀어야 할지 감이 오지 않았다. dp 문제를 이제 막 10문제를 풀어본 상태라서 기존에 내가 풀었던 방법인 입력값으로 주어진 수열에서 규칙성을 찾아 점화식을 도출하는 방법은 이 문제에 적용할 수 없기 때문에 점화식을 이용한 풀이는 전혀 떠오르지 않았다. 그래도 조건에 따라 여러 분기를 나누고 가능한 경우를 체크해준다면 풀 수 있을 것 같아서 해당 아이디어로 코드를 짜봤고 이 문제를 해결할 수 있었다. 

 다소 투박한 풀이지만 약 20일만에 알고리즘 문제를 푸는 것이고, 그동안 감이 떨어져서 문제를 풀 수 있을지 걱정을 했지만, 문제를 해결할 수 있어서 다행이다. 앞으로 어려운 문제를 만나더라도 회피하지 말고, 최대한 고민을 해보고 풀지 못하겠다면 다른 사람의 풀이를 보고 내 것으로 만들어야겠다.

 

🚩 Idea:

 - 내 풀이는 예상 가능한 경우를 조건으로 나누고, 해당 경우에 어떤 처리를 하면 될지를 고민해서 풀어본 풀이인데, 이 문제에는 내 풀이보다 참고용 풀이가 좀 더 적합한 풀이라고 생각하기 때문에 해당 풀이만 참고하고 넘어가도 좋을 것 같다.

 

 - 참고용 풀이는 이 문제의 유형에 맞게 점화식을 이용한 풀이를 구글링을 통해 찾았고, 불필요한 코드를 제거해서 올린 풀이인데 간단한 점화식이라서 추가적인 설명이 없어도 이해하는데 어려움이 없을 것 같다.

 

 
 
 
 
 
 
 

댓글