365일째 알고리즘 문제를 풀며 느낀점

2023. 4. 18.·📰 기술 트렌드 & 생각 정리

📍목표와 결과

✅목표

- 백준에서 1년 동안 1일 1문제 해결

 

✅결과

- 22년 4월 19일 ~ 23년 4월 17일 (365일) 연속 문제 해결

 

나의 solve.ac 프로필

https://solved.ac/profile/kjhan710

 

solved.ac

알고리즘 문제해결 학습의 이정표 🚩 Baekjoon Online Judge 문제들의 난이도 및 티어 정보를 제공하는 사이트입니다.

solved.ac

 

solved.ac

 

📍목표 설정의 배경

1. JavaScript 문법과 메서드 연습하고 싶어

- 이런 저런 메서드 써보며 습득하기 (무작정 다 외울 수 없어..)

- 알고리즘 지식이 필요없는 구현 문제를 풀며 JavaScript 연습

 

2. 코딩 테스트 대비

- 자료구조와 알고리즘 까지 공부하자

 

📍득과 실

✅얻은것

 

1. JavaScript의 다양한 내장 객체를 써보는 경험

예를 들면

- 이번 문제에서는 array 객체의 some 메서드를 이용해볼까..?

- Set 객체와 Map 객체 써서 간편하게 중복을 제거하고 I/O 시간 줄이기..

 

평소에 쓸 일이 없던 메서드도 사용해보면서 JavaScript 내장 메서드를 익히는데 매우 큰 도움이 됨!

(Pythonic code 처럼 JavaScriptic code...)

 

2. 프로그래밍 구현 실력 업

가장 기억에 남는 문제..

- 공기청정기 작동 과정 모델링하면서 2차원 배열에서 내부 공기를 순환시키고 미세먼지 크기는 낮추는 동작을 1초에 한번씩 발생하게 구현..

- 문제를 풀고 나서 현실세계를 모델링하는게 진짜 프로그래밍의 매력이지! 를 느꼈던 순간

 

3. 자료구조와 알고리즘의 이해

큐, 스택 부터 힙, 트리, 그래프 등 다양한 자료구조가 각각 어떤 때 쓰이는지 알게됨

예를 들면,

- 배열 대신 연결 리스트가 성능이 무조건 좋은 것은 아니다

- 우선순위 큐는 우선순위 순으로 빠르게 노드를 확인할 수 있어서 유용하다 등

 

다이나믹 프로그래밍 또는 DFS/BFS 같은 완전 탐색 알고리즘을 사용하는 법을 알게됨

 

어떤 카테고리의 문제를 많이 풀었나..

구현, 자료구조, 수학 등..

단일 알고리즘으로는 DP도 많이 품

자주 푼 문제 분류

 

4. 클린 코드

- 절차형 대신 선언형으로 코딩하는 습관 => 코드 가독성 측면에서 매우 좋음

- 모듈화 (한가지 기능만 담당하는 함수로 나누기) => 중간에 테스트하기도 편함!

 

5. 제2외국어 느낌으로 Python 연습

- JavaScript로 안 풀리는 문제 (메모리, 시간 이슈) Python으로 해결하며 제 2의 언어 연습!

 

6. 보람, 힐링

- 문제를 풀며 쌓이는 기록과 실력이 느는 것을 직접 확인하며 보람을 얻을 수 있었다

- 문제 풀 때는 힘들지만, 풀고 나면 희열과 쾌감을 느낄 수 있었다

 

반면..

✅주의할 점

 

1. 시간을 꽤 많이 소모

- 하루 1시간 ~ 2시간은 기본

 

말고는 딱히 없다

 

📍향후 계획

1. 백준 말고 프로그래머스도 풀어볼까?

2. Python 위주로 코테 연습해볼까? (제2외국어 공부 느낌으로)

 

📍정리

정리하자면 많이 배웠고, 꾸준히 했고, 내 인생에서 매일 이렇게 접속한 사이트가 있을까 싶을 정도로 매일매일 했다는게 신기하다..

나쁘지 않았다.. 재밌었다..

 

끝.

'📰 기술 트렌드 & 생각 정리' 카테고리의 다른 글
  • 구글코리아 1호 개발자가 말하는 개발자의 덕목
  • 클라우드 시장 세계 1위, 아마존의 AWS(Amazon Web Services)
  • 블로그 개설
지식물원
지식물원
지식이 자라는 식물원!
  • 지식물원
    지식물원
    지식물원
  • 전체
    오늘
    어제
    • 분류 전체보기 (515)
      • 🎨 프론트엔드 공부 (242)
        • JS & TS (92)
        • HTML & CSS (22)
        • React & Next (49)
        • Vue & Nuxt (22)
        • 기타 (57)
      • 🤓 기술 학습 & 공부 기록 (116)
        • Node.js (0)
        • Python (37)
        • 백엔드 (0)
        • 딥러닝 (1)
        • 컴퓨터 일반 (72)
        • 개발 인프라 (6)
      • 👨‍💻 프로젝트 경험 (16)
        • Work (0)
        • Toy (16)
      • ⚙️ 개발 팁 & 노하우 (21)
        • 프론트엔드 (6)
        • 기타 (15)
      • ☕️ 커리어 & 인터뷰 준비 (88)
        • 코딩 테스트 (88)
      • 📰 기술 트렌드 & 생각 정리 (4)
      • 📚 기타 (25)
        • 마케팅 (15)
        • 비개발서적 (10)
  • 블로그 메뉴

    • 태그
  • 링크

  • 공지사항

    • 모바일 접속 시 코드 하이라이팅 깨질 때
  • 인기 글

  • hELLO· Designed By정상우.v4.10.3
지식물원
365일째 알고리즘 문제를 풀며 느낀점
상단으로

티스토리툴바