심심풀이2010. 6. 4. 21:28
문제는 다음과 같다.

나온지 별로 안된 따끈한? 문제이다.

다른문제들은

숏코딩 괴수님들의 경쟁이 치열하기 때문에

잽싸게 get


다음과 같이 풀었다.


각 문자를 읽어 들일때 

연산자들 +,-,*,/ 들은 prefix같은 경우에 미리 범위가 예측 가능하다

연산자를 읽는 순간에 두개의 상태를 더 읽어봐야 한다는 걸 아는것이다.

요새 컴파일러에서 parsing 에 대해 공부중이다.

prefix 계산이나

recursive descent parsing 이나 마찬가지로 보고 풀었는데

문법이 전부 

상태 -> op 좌 우

똑같기 때문에 deterministic 해져 버린다.

그래서 입력을 받는대로 바로 계산한다 ㅋㅋ


prefix이므로 left recursion 이 절대 발생하지 않으나

left factoring 이 문제이다.

근데 생각해보니 꼭 시작상태를 지역변수로 핸들링할 필요는 없기 때문에

전역변수로 그냥 계속 값을 대입하는 식으로 바꿨다.


나눗셈에서 밑수가 0인 경우를 예외처리하는 경우도

문법에 포함시키면 non-deterministic 해지기 때문에

그냥 강제종료하는 식으로 꽁수로 해결했는데 

왠지 맘에 든다. printf 를 두번이나 쓸 필요가 없게 되버렸는데

이건 의도한건 아니고 막 대충 하다가 얻어걸렸다;;


'심심풀이' 카테고리의 다른 글

django 설치 윈도  (0) 2011.10.18
pow 함수 고찰 글을 보고..  (0) 2011.03.27
[더블릿] prefix 계산기  (0) 2010.06.04
더블릿 dump 문제  (2) 2010.05.06
더블릿  (0) 2010.04.04
xy평면  (2) 2010.04.03
Posted by 멍충한아싸

댓글을 달아 주세요