이번 주는 프로그래머스 레벨 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);
또한 한줄로 표현이 가능하다면 위와 같이 중괄호({})를 생략할 수 있다.