이번 주는 프로그래머스 레벨 1 알고리즘 40문제를 풀었고 두 번의 알고리즘 테스트가 있었다.
초보 개발자인 나는 알고리즘 문제를 태어나서 처음으로 마주하고 굉장히 당황스러웠다.
수학 공식으로 풀어도 어려운걸 javascript 언어로 풀어야했기 때문이다.
수포자 + 자바스크립트 문맹 으로 첫 날엔 거의 손도 못대고 강의를 들어도 머릿속에 잘 안들어왔다.
그래서 나름대로 공부방법을 정했다.
문제 해석 + 접근 방법은 혼자 노트에 최대한 작성해보고 풀이는 최대한 많은 해답을 보고 분석했다.
그랬더니 점점 다른 풀이의 코드만 보고도 해석을 할 수 있게 되었고, 나랑 다른 방법으로 접근한 사람의 풀이를 보고 그 접근법을 기억해뒀다가 다른 문제에 응용하게 되었다.
그 결과 두 번의 시험 모두 무리없이 잘 풀었다!
스스로 풀 수 있을까 긴장했지만 두 번 다 생각보다 어렵지 않게 풀었고, 최종 시험에서는 약 20분만에 문제도 다 풀고 해설영상도 제출했다. 우리반(약 60명)에서 세 번째로 제출! 🙂
첫 날 당황했던 나를 돌아보면 장족의 발전이다. 이번 알고리즘 주차에 좋은 팀원분들을 만난 덕도 매우 크다.
한 명 한 명 적극적이어서, 모르는 부분은 바로 질문하고 다들 아는 선에서 최대한 도움을 주었다.
모든 문제를 하나씩 다 풀어보고, 만나서 서로의 풀이를 공유하고 새로 알 게 된 것은 따로 정리하고를 반복했다. 그리고 우리 조에서 일타강사(?)처럼 빠른 이해력과 명쾌한 해설로 많은 도움을 준 팀원 분이 있는데, 블로그에 굉장히 정리를 잘해놓으셔서 참고하기에 좋다. 알고리즘 일타강사 현빈님 블로그
우선 문제를 얼마나 잘 이해했느냐, 어떤 논리를 가지고 접근하느냐 가 가장 중요한 것 같다.
직접 코드를 얼마나 잘 쓰느냐 보다는 구조가 얼마나 논리적이고, 효율적인지에 따라
이 알고리즘이 차지하는 메모리용량, 속도도 달라지고 가독성이 좋은 코드라면 협업 능률도 올라갈 것이다.
또 잘 짜놓은 알고리즘은 필요할 때 꺼내서 사용할 수도 있다.
지금 당장 이 문제를 “맞추기”위해서 풀기보다
문제를 얼마나 이해하고, “어떻게 해결”하는게 좋을지 고민하는 과정이 중요한 것이다.
코딩을 하다보면 문법이 틀리거나, 도저히 원하는대로 굴러가지 않을 때도 있는데,
이럴 때 당황하거나 두려워하지 말고 콘솔을 찍어보면서 어디가 잘못되었는지 찾고
원하는 기능을 구글링해서 찾아오자! 내가 코드 열 줄 써서 해결할수도 있지만
누군가 잘 만들어놓은 메소드를 사용하는게 합리적이다.
그래도 모르겠으면 다른 사람 풀이를 많~이 보고 분석해서 내껄로 소화하자!
기능이 모든 브라우저에서 동일하게 동작하지 않는 이슈
이 크로스 브라우징 이슈를 해결하기 위해 JavaScript를 표준화를 했다.
ES란 ECMA Script의 약어이며 자바스크립트의 표준 규격을 나타내는 용어이고, JavaScript를 표준화시키려고 탄생했다.
배열에 forEach, map, filter, reduce, some, every와 같은 메소드들이 지원되었다.
Object에 대한 getter와 setter가 지원되었다.
Javascript strict모드가 지원되었다. (기존에 비해서 더 엄격하게 문법 검사를 진행한다.)
json 형식의 자료들을 지원한다. 과거에는 XML이라는 규격을 사용했다가, json이 인기를 끌면서 javascript 역시 지원을 하게 되었다.
const 와 let 이 추가되었다.
화살표 함수화살표 함수에 인자(argument)가 하나밖에 없다면 괄호를 생략할 수 있다.
var str = arg1 => console.log(arg1);
또한 한줄로 표현이 가능하다면 위와 같이 중괄호({})를 생략할 수 있다.