[6일차 회고] Javascript 변수

김준표·2023년 2월 20일
0

코드스테이츠 회고

목록 보기
6/49
post-thumbnail

오늘은 기분이 별로 좋지 않다. 이유는 크게 두가지인데, 하나는 나의 고질병인 어렵게 생각하는 병, 또 하나는 의사코드를 작성하지 않는 습관 때문이였다. 자세한 상황은 아래에서 후술하겠다.


Javascript

이번주부터 JS가 시작되었다. 기초를 배우지 않고 만졌던 JS였기 때문에 나름 긴장하며 첫 학습자료를 펼쳤지만 약 5% 정도를 제외하고는 다행히 알고 있던 내용들이였다. 새삼 프로젝트를 하길 잘했다는 생각이 들었다.
그래도 모르는 건 존재했고, 따로 정리하고 검색해서 공부를 하는 시간을 잠깐 가졌다. 문제는 페어프로그래밍으로 진행한 문제풀이였다.


페어 프로그래밍(변수 10문 풀기)

여기에서 나의 큰 병이 터졌다. 바로 "문제를 어렵게 풀이하는 습관" 이다. 특히 문제 7번에서 이 병이 가장 크게 터졌는데, 세 인자를 받아서 직각삼각형인지를 boolean으로 나타내는 것이다.
처음 문제를 봤을 땐 답이 보이지 않았다. if문을 이용하면 너무나 쉽게 풀이할 수 있는 문제였지만 if문을 배우지 않았다는 가정하에 문제를 접근했다.

그런데 if문을 이용하지 않고 풀이하는 방법이 전혀 떠오르지 않았고, 시간이 부족해서 결국 if문으로 코드를 작성하고 페어님에게 죄송하다는 말씀을 드렸다.
하지만 출제자의 의도는 or 덕지덕지 return 이였다.
피타고라스를 이용하여 풀이를 해야하기 때문에 모든 값을 제곱으로 바꾸고 a = b + c || b = ~~ 이런식으로 세번의 식을 or로 묶는 방법이였다... 너무 허무했다 ㅠㅠ

let a = 1;
let b = 2;
let c = 3;

let pow1 = Math.pow(a, 2);
let pow2 = b ** 2;
let pow3 = c * c;

-----------------------------
//내가 사용한 방식
let temp = pow1;
pow1 = Math.max(pow1, pow2, pow3);
if(pow1 === pow2) {
  pow2 = temp;
} else if(pow1 === pow3) {
  pow3 = temp;
}

return pow1 === pow2 + pow3;
-----------------------------
//실제 출제자의 의도
return pow1 === pow2 + pow3 || pow2 === pow1 + pow3 || pow3 === pow1 + pow2;

의사코드

그리고 또 하나의 문제점은 나는 의사코드로 코딩을 해 본 적이 없다는 것이다.
항상 코드 만들기 전에 생각만 하고 일단 적기 시작하면서 테스트 해보고 맞으면 그대로 하고 아니면 고치고를 반복했는데, 의사코드를 작성하면 시작부터 끝까지 내가 알 수 있게 한글로 코드의 진행 순서를 작성하고 그걸 그대로 코드로 변경시키기만 하면 된다. 앞으로는 의사코드를 반드시 작성하도록 할 것이다.

6일차의 정리 내용

profile
프론트엔드 개발자 | 문제가 있는 내용이 있다면 댓글로 알려주세요.

0개의 댓글