2주차 회고록

동오·2024년 12월 3일

11월 25일 ~ 11월 29일

React 공부

리액트 과제가 있어서 진행하려고 했는데 자바 스크립트를 1년 반 전에 공부하고서 이후에 한 번도 본 적이 없었다보니 기본 문법조차도 가물가물해서 다시 한다고 생각하고 리액트 강의 제공해준걸로 학습을 진행했다.

간단한 기초 정도의 학습이었고 자바에만 익숙해져 있다보니 진행하면서도 문법이 틀려서 막혔던 시간이 꽤나 됐던 거 같다.

또 HTML, CSS도 다시 머리 저 멀리 있는걸 끄집어 내느라고 엄청 애 먹었던 느낌...


사칙연산 계산기 TDD를 이용해 구현

사칙연산 계산기 레포

리액트보다 더 애먹었다..
처음에 자료를 좀 찾아보고 스택을 활용해 후위 표기식으로 바꿔서 구현하는 방식으로 진행을 했다.
내가 후위표기식을 이해를 잘 못했던 탓인지 연산자 우선순위를 기준으로 할 때 2시간 3시간씩 막혀버렸다.
그러고 다음 날 스택을 활용하지 않고 재귀 호출 방식으로 구현하라고 해서 어차피 머리도 복잡했고 막막했는데 잘됐다 하고서 싹 지워버렸다.

2번째 시도

다시 시작을 하기 전 이번에는 재귀호출을 사용하고 연산식이 파라미터로 들어오면 우선순위를 먼저 확인 후 후위표기식으로 변환하는 방식으로 시작했다.

아니나 다를까 또 재배열 하는 과정동안 또 꼬여버리고 코드 자체도 너무 난잡해지기 시작해서 다시 또 Delete...

이렇게 2일을 통으로 날려먹고 아무래도 생각을 좀 단순화 시켜야겠다는 생각에 그냥 쉬어버렸다😅

3번째 시도

말끔히 머리 비우고 정말 단순하게만 생각을 해봤다.
2 x (3 + 3)의 연산식이 예시라고 쳤을 때 단순히 (3 x 3)을 먼저 연산해버리고
2 x 6으로 만들어 버리는게 낫겠다고 판단했다.

띄워쓰기를 기준으로 문자열을 잘라서 배열로 만든 후 우선순위가 높은 연산자를 먼저 찾아내게끔 구현하고 높은 연산자를 찾았을 때 연산자 앞 뒤 숫자를 가져와 연산을 하고 재배열을 했다.

이후 괄호 처리또한 앞에서 높은 연산자를 찾는 거 처럼 괄호를 먼저 찾아내고 연산 후 재배열
배열이 1개가 될 때 까지 계속 재귀로 반복했고 그렇게 구현이 끝났다.

딱 3시간만에 끝났는데 앞에 했던 거 생각하면 내가 왜 그랬지 싶을 정도로 너무 수월하게 진행돼서 오히려 당황스러웠다.

0개의 댓글