안녕하세요.
현재 알고리즘 복습중인 학생입니다.
예전에 알고리즘을 짤 때는 아무 이상함을 못느끼고 그냥 넘어 갔었는데 오늘 다시보니 제가 큰걸 지나쳤던것 같습니다.
저는 띄어쓰기 없이 주어지는 중위표기식을 후위표기식으로 변환하는 것을 공부하고 있습니다.
변환 자체는 문제가 아니지만 주어진 중위표기식을 알맞은 토큰으로 자르는 것이 어렵네요...
저는 연산자가 나오면 연산자의 앞뒤로 공백을 삽입하여 나중에 strtok함수로 토크나이징 할 생각이었습니다.
input : 1+2+3 / output : 1 + 2 + 3
요렇게요.
그런데, 이방법으로 적용해보니 음수 인풋에 대해서는 적절한 대응을 할 수 없었습니다.
가령 input : 87*-12 / output : 87 * - 12
요렇게 되어 음수에 대한 정보가 소멸되어 버리고 맙니다.
결국 핵심은 수식에 사용되는 '-'가 단항연산자인지, 이항 연산자인지를 알아내는 것 인듯 싶습니다.
참고할만한 방법이나, 힌트를 주시면 감사하겠습니다.