티스토리 뷰


test_calculator.exe


Form1.cs





위와 같은 그림을 가진 일반 계산기 입니다.



아래 빈칸 두개는 괄호 () 랑 ( +/- ) 입니다..



하려면 못할 것도 없는데.. 그냥 구현하기 귀차나서 패스한게 사실이에요 



우선 제가 사용한 알고리즘은



list 를 이용해서 



숫자와 부호를 따로 추가하고, 우선순위에 맞춰서 * / + - 를 찾은 다음 양 옆의 숫자를 계산해주는 것입니다.










이건 = 에 대한 알고리즘입니다.



위에는 * 에 대한 것만 있는데, / + - 는 위와 동일한 알고리즘이기에 첨부하지 않았습니다.



우선 처음 for 문에서 sSign 이라는 부호를 저장해 놓은 리스트를 쭉 뒤지고



* 랑 같으면 해당 index 와 다음 index 의 숫자 두개를 곱한 다음



현재 index 번호의 숫자 위치에 방금 계산 한 값을 넣고, 방금 계산한 * 랑 현재 index + 1 의 숫자를 지워 버리는 것이



핵심입니다.










이건   .   을 붙이는 알고리즘인데,



앞에 빈칸이 와도 안되고,  .  이 와도 안되고, 부호가 와도 안되고 제일 처음에도 올 수 없다는 설정입니다.








사실 위 두개 핵심 알고리즘으로 구성했다고 해도 과언이 아니네요.



총 쏘스는 아니고 cs 파일만 올려놨으니 혹시 참고 하실분 참고하세요.

















댓글
댓글쓰기 폼