청아
1k
2017-12-04 08:23:38
5
409

수식 문자열 파싱 도출 문제 어떻게 풀면 좋을까요?ㅠ


String str = "10 + 3 / 2";

입력이 문자열로 들어올때의 계산값을 구하시오.


이건데 어떻게 풀어야할지 고민해봐도 감이 안잡혀서...흐

혹시 알고 계신분 있으시면....도움좀 주시면 감사하겠습니다..ㅠㅠㅠ

0
0
  • 답변 5

  • 하두
    9k
    2017-12-04 08:54:56

    쿼리문으로 치환하시면 안될까요.

    0
  • aeba
    2017-12-04 09:00:57
    공백으로 나눈 다음에 각각의 단어를 노드로 바꾸고 순서를 매겨서 트리화 한 다음에 트리를 평가하면 되겠네요
    0
  • jsam1319
    38
    2017-12-04 09:18:08

    수식을 계산하는 올바른 방법은 postfix로 바꾸시는게 좋을거 같아요...

    윗 분이 말씀하신 것처럼 토큰나이징 하셔서 각 각 나누시고 

    스택을 이용하셔서 바꾸시면 될 것 같습니다

    유투브에 동영상 강의도 있으니 참고 하시면 좋을 것 같아요

    이런 식으로 하시면 괄호로 묶인 수식도 계산 가능 하십니다 ㅎ 

    0
  • 초코쪼꼬
    6k
    2017-12-04 09:21:06


    ScriptEngineManager manager = new ScriptEngineManager();
    ScriptEngine engine = manager.getEngineByName("js");
    		
    String str = "10 + 3 / 2";
    		
    Object result = engine.eval(str);
    		
    System.out.println(result);


    javascript의 eval기능을 java에서도 쓰게 할 수 있다고 하네요..

    0
  • Ires
    1k
    2017-12-04 09:29:30

    저라면 정규식으로 숫자와 연산자를 분리해서 계산하는 방식을 사용할 거에요.;;

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.