3 분 소요

스무 번째 포스팅

안녕하세요! 스무 번째 포스팅으로 찾아뵙게 되어 반갑습니다!♥

정말 오랜만에 게시물을 작성하게 되었네요!! 시험기간이다 뭐다,, 라는 말은 핑계겠지만..
다시 열심히 하면 되죠 뭐😆

오늘의 포스팅 내용은 프로그래머스 코딩 기초 트레이닝 후기에 관한 이야기입니다.
자세한 내용을 알아보러 갑시다❗️

[Boongranii] Here We Go 🔥

프로그래머스 코딩 기초 트레이닝 후기 시간을 가져볼게요❗️


1️⃣ 프로그래머스

프로그래머스 플랫폼은 프로그래밍 및 소프트웨어 개발 역량을 향상 시키고 다양한 언어와 알고리즘 문제를 해결할 수 있는 곳이며, 프로그래머 및 개발자들이 실력을 향상시키고 코딩 스킬을 연습하고자 할 때 유용한 사이트입니다.

우연히 친구가 프로그래머스에 있는 코딩 기초 트레이닝을 하는 모습을 보며 시작하게 되었습니다.

코딩 기초 트레이닝 캘린더

총 25일동안 매일 프로그래머스에서 추천 문제를 제공해줍니다. 하루에 5문제씩 제공하며 총 124문제의 Lv.0의 문제를 해결하는 구조입니다.
다른 사람의 풀이를 보면 문제 해결 100%를 달성할 수 없습니다.

저는 JavaScript 언어를 통해 문제를 해결하였습니다. 그 이유는 React.js에서도 로직을 구현할 때 JavaScript의 문법을 활용하기 때문에 JavaScript 문법이나 메서드에 대해 좀 더 정확한 이해와 새로운 문법을 알아가기 위해 이 언어를 통해 문제를 풀었습니다.


2️⃣ 문제 해결

programmers2

정답률이 낮은 문제는 정답률이 45% 까지 이루어져 있으며 평균 80% 근처 정답률의 문제가 주를 이루고 있습니다.

JavaScript로 문제를 해결 하는 것은 처음이라 어떠한 문법을 써야할 지 정말 오래 걸리기도 했습니다. [MDN] ← 저는 이 MDN 사이트의 도움을 받아가며 문법을 이해하며 문제를 해결해 나갔습니다. 어떤 문법을 사용할 지 감이 안잡혔지만 예를 들어 구글링을 통해 ‘js 정렬하는 법’과 같이 검색을 해보며 그 메서드 명을 찾고 MDN에서 찾는 방법으로 해결했습니다.

또한 코드 실행 결과 값을 한 페이지 내에서 바로 볼 수 있으며 오류가 있으면 어떤 부분에서 오류가 발생했는지 알려주어 왜 오류가 발생했는지 파악하고 메서드가 배열을 반환하는 것인지 값을 반환하는 것인지 판단하며 오류를 수정해 나가면서 해결했습니다.

문제를 제출 후 채점이 끝나면 다른 사람의 풀이를 무료로 볼 수가 있는데 한 줄에 정답을 제출한 사람을 보며 정말 대단하다고 느꼈습니다.

programmers3

문제 제출 후 찜찜하고 런타임이 오래 걸리는 듯한 느낌이 들면 다른 사람의 풀이를 보며 이렇게도 풀 수 있다는 것을 느끼고 다른 사람이 사용한 신기한 메서드를 보며 MDN에 검색하며 어떤 상황에서 쓰이는 것인지 확인하며 문법을 익혔습니다.

물론 아직 수많은 메서드들 중 극소로만 알게 되었으나 이렇게 메서드를 검색하며 문제 해결 능력도 키우며 JavaScript 문법에 대해서도 공부할 수 있었습니다.

물론 Lv.0이라 복잡한 알고리즘은 아니었지만 JavaScript 기초를 다진다고 생각하며 문제를 해결 했습니다.


3️⃣ JavaScript의 편리함

Java로 문제를 해결했으면 코드가 확실히 더 길어졌을 것이라고 생각하는데 JavaScript로 작성하니 엄청 간결해진 것 같습니다. Java에도 존재하는 메서드도 있겠지만 이러한 메서드의 사용과 화살표 함수, 스프레드 연산자 등의 사용으로 엄청나게 간편하고 빠른 코드를 만들어낼 수 있다는 것이 장점이라고 생각합니다.

JavaScript는 메서드와 빌트인 함수가 풍부하여 코드를 간결하고 효율적으로 작성 가능하고 화살표 함수, 스프레드 연산자 등을 사용하면 직관적으로 작성할 수 있습니다. 이러한 특징은 코딩 문제를 보다 빠르고 쉽게 해결할 수 있도록 도와준다고 생각합니다.

이러한 JavaScript의 편리함과 간편함을 토대로 React.js 로직 작성 시 적용할 것이며 앞으로 JavaScript를 더욱 깊게 이해하고 활용하여 코딩 능력을 향상시키고 싶습니다👍


4️⃣ 메서드

누산기와 현재 값을 파라미터로 갖는 메서드인 reduce()가 가장 어려운 메서드였습니다.

programmers4

다른 사람의 풀이를 보면 대부분 reduce() 메서드를 사용하여 다음에 필요 시 그렇게 풀어야겠다고 느끼지만 항상 막혀 MDN을 찾아 정확히 이해를 하고 문제를 풀었습니다. 정말 편리한 메서드라고 생각하며 다른 언어였다면 길어졌을 코드를 간소화 시켜준 메서드라고 생각했습니다.

programmers5

위와 같이 한 문제에 filter(), slice(), reduce() 와 같은 여러 메서드를 활용하여 간결하게 작성이 가능해서 편리했던 것 같습니다. 또한 문제를 풀어가며 메서드를 언제 사용해야 할 지도 조금씩 감이 잡혔습니다.


5️⃣ 마무리

알고리즘 문제 푸는 것에는 원래 관심도 없었는데.. 이렇게라도 문제를 푸니까 너무 재밌었습니다. 물론 Lv.0이라 알고리즘이라고 하기엔 그렇지만..그 래 도❗️ 이제 자동으로 문제 추천 해주는 것은 없다고 하며 알아서 문제를 찾아 해결해야 한다고 합니다.. 우연히 본 것을 통해 25일동안 하루에 5문제씩 몇 줄이라도 코드를 작성해서 흥미로웠고 심심할 때마다 앞으로는 Lv.1의 문제를 읽어보며 문제 해결 능력을 키워 나가야겠다고 생각을 했습니다.

중간중간 하루가 지나고 이틀 연속 도장이 찍힌 곳도 있었지만 그래도 25일동안 꾸준하게 풀게 해준 프로그래머스한테 감사함을 느끼고 앞으로도 꾸준하게 알고리즘을 해결 해야겠다고,, 느꼈습니다.

programmers6

정진할 수 있도록 합시다. 많이 부족한 나에게 우리 모두 외쳐봅시다. 정! 진!🔥💪

댓글남기기