내일도무사히 2021. 9. 11. 11:59

 

 

https://www.inflearn.com/course/%EC%9E%90%EB%B0%94-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4-%EC%BD%94%ED%85%8C%EB%8C%80%EB%B9%84/dashboard

 

자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 - 인프런 | 강의

자바(Java)로 코딩테스트를 준비하시는 분을 위한 강좌입니다. 코딩테스트에서 가장 많이 출제되는 Top 10 Topic을 다루고 있습니다. 주제와 연동하여 기초문제부터 중급문제까지 단계적으로 구성

www.inflearn.com

 

 

직접 풀어본 뒤 김태원님의 강의를 듣고 정리한 내용입니다.

 


 

 

처음에 숫자와 operator를 구분해 받고 

stack에 집어넣어 문제를 풀어보면 되겠다라고 막연하게 생각했었는데 

잘 풀리지 않았었다.

 

 

맨 처음에 시도했던 코드

result라는 변수를 따로 두고 거기에 값을 적립해나가는 방식으로 문제를 풀었었는데 여러 테스트에서 Fail이 날 뿐만 아니라 고려해야 할 것도 너무 많았었다. 

 

테스트에서 계속 fail이 나서 문제를 분석해봤고 다음과 같은 결과를 냈었다

 

'값을 스택에서 뺏을때 스택의 크기가 0이 되면 최종값에 더하면 된다.'

'하지만 스택에서 값을 뺏을 때 스택의 크기가 0이 되지 않으면 '임시 합'에 넣어서 계산 후 스택의 크기가 0이 되었을 때 처리해야한다!'

 

이 결과에 따라서 currentSum이라는 임시 변수를 만들고 거기서 계산을 한 뒤 문제를 풀어봤지만 

역시나 안풀렸고 결국 그냥 강의를 봤다.

 

 

Answer

stack에서 값 2개를 꺼내 더하는것까지는 맞았지만 내가 놓친부분은 그 결과값을 다시 스택에 집어넣는다는 부분이였다. 

 

스택에 다시 집어넣고 계산을 하니 정상적으로 값이 나왔다.