코딩테스트 연습

백준 14888 - 연산자 끼워넣기

gurwhddl 2023. 3. 15. 00:15

사실 dfs 이용해서 예외케이스 찾는게 제일 중요한 문제지만 재귀함수 공부한지 얼마 안됐기 때문에 재귀함수 포커스로만 코드 짜봄

numbers = [1,2,3,4,5]
operators = [4,0,0,0] //편의로 +만 4개 있다고 가정

앞에서부터 하나씩 계산해야 되기 때문에 뭔가 지금 값을 계산해서 다음 재귀함수 인자로 넘겨주면 됨
코드로 본다면
dfs(현재위치,현재위치까지 계산한 값){
  dfs(현재위치+1,현재까지 계산한 값 + numbers[현재위치+1]}
이렇게 하면
dfs(0,numbers[0]) -> dfs(1,1+2) -> dfs(2,1+2+3) -> dfs(3,1+2+3+4) -> dfs(4,1+2+3+4+5) return

*개인적인 생각
재귀함수에서는 너무 함수의 계산에 집착하지 말고
인자로 뭘 넘겨줄지를 생각하기
또 너무 코드 하나하나 절차적으로 생각하지 말기
//이미 다 생각해놓고 dfs(0)일때 계산 틀리지 않나? 생각해서 10분걸릴거 1시간 걸림ㅠㅠㅠ