블램의 일상 IT카페

나의 앞으로의 PS(Problem Solving) 계획 [10일간의 입문 후기] + C언어. 본문

IT/알고리즘 문제 풀이

나의 앞으로의 PS(Problem Solving) 계획 [10일간의 입문 후기] + C언어.

ble_ram 2022. 11. 24. 21:31

다들 ㅎㅇ욤.!

5일하고 회고록쓰고 10일하고 또 후기 쓰는 사람이 있다!? ㅋㅋ 여기있지롱//

 

우선 이번 후기는 요전과는 조금 다르다. 현재 진행하고 있던 나의 PS공부라기보단 입문같은 느낌?

 

무엇보다도 이에 대해 할 말이 많아 따로 글을 또 쓰게됐다.

 

우선 "알고리즘 풀이를 하며 글을 올리고, 또는 백준에서 문제를 풀고 하는것은 이제 그만하려고 한다."

 

뭐 갑자기 잘 하고있다가 10일만에 그만둔다니 작심삼일 아니냐 할 수 있는데(일단 3일은 넘겼는데 ㅋㅋ)

 

아직 내 실력으로는 단순한 문제 이상의 수준 즉 고난이도 문제를 풀지못한다.

 

내 실력을 메타인지해보자면 

 

1. c언어를 공부한건 2~3개월 독학 그마저도 띄엄띄엄.. 포인터까지 개념만 땜 예제? 당연히 안풀었음.

2. 수학적 사고 부족.. 거기다 PS에서 많이 요구하는 수학은 이산수학, 정수론, 대수학 인데 당연히 다 모름.

3. 자료구조, 알고리즘? 안배워서 모름.

 

PS를 제대로 시작하기에 필요한 재료들을 안가지고 있거나, 듬성듬성 알고있다.

와 하하하 ㅋㅋㅋ

내가 괜히 단순구현 이상을 못 벗어나는게 아니다.

(내가 c언어를 선택한 이유. https://rlato56789.tistory.com/13 )

 

내가 우리학교 교육과정에 없는 C언어를 따로 공부하는 이유.

Hi Hi~ 에이치 아이~! 반갑습니다. 오늘도 활기찬 하루... 는 하루종일 문제푸느라 힘빠지는..(라기엔 브론즈 문제들이지만 ㅋㅋ;; 시작한지 얼마 안됐다요 이해점 ..) 내가 블로그를 만들고 카테고

rlato56789.tistory.com

 

 

물론 남들은 정 안풀리면 풀이를 보고 이해하고 넘어가면 되지 않겠냐? 라고 할 수 있는데

 

솔직히 난 그런 방법은 실력 향상에 크게 도움이 안된가 생각한다.

 

나도 안풀리는 문제는 풀이 힌트 혹은 목적을 알아보지 코드를 알려고하진 않는다.

 

최대한 시간 쏫아가며 생각하고 내 힘으로 풀려고한다.

 

정 안풀릴땐 남들의 코드를 보고 분석해야하지만 이것을 하기 전에

힌트를 주는 식의 글을 참고하고 힌트를 보고 다시 구현해본다.

 

나는 이상하게 남들의 풀이를 보고 분석도 하고해도 내가 맞힌 문제보다도

기억을 못한다.

나름 기억력은 좋은데 그 내가 스스로 맞혔을때 강렬한 자극이 없어서 그런지

기억을 잘 못한다.

 


 

나의 백준 문제풀이 현황.

 

정확히 문제만 푼 날은 총 9일이고 대충 PS를 한지는 10일이다.

 

총 47문제를 풀었고, 티어는 브론즈2이다.(내 생각일뿐이지만 티어는 의미가 없는거 같다..문제티어 예외);

 

 

나름 백준에서 티어를 올려가며 문제를 푸는게 정말 게임같고 좋았다.

그래서 하루를 소비해가며 거의 문제풀이는 놓치지않고 꾸준히 했고 하루에 13문제를 푼 날도 있었다.

 

하지만 너무 티어에 집착하거나 맹신하는건 좋지 않다고 생각했던게

 

나도 모르게 티어를 올리고 싶어 흔히 말하는 문제양치기를 시도하려 한다는 것이다.

 

이게 뭐냐면 난이도 낮고 브론즈 수준 정도 쉬운 문제들만 골라서 푸는 것이다.

(사실 내가 푼 문제의 반의 반은 단계별 문제집이라 양치기는 아니였다.) 

 

거의 단계별 풀기 위주.

캬 실버문제가 하나도 없네~!!!!

 

대충 내가 왜 그런지는 간단했다.

 

단순구현 이외의 문제를 풀려면 진짜 풀 방법도 모르고 계속 시도해도 답은 안나오고,

내가 머리속으로 생각한 로직은 짜여졌지만 막상 c언어의 이해도나 문법이 기억이 안나

구현을 못하는 등 

 

많은 애로사항이 있었다.

 

확실한건 이대로 꾸준히 한다는건 어차피 못푸는 문제가 너무 많고, 어차피 안풀리는 문제 푼다고 몇시간 박기엔 넘 아깝다는 생각이 들었다.

 

다들 생각해보라.

브론즈 수준의 단순구현, 단순수학 물론 도움은 된다. 나의 c언어 문법이나 사용등 익숙하게 해주었고, 모를때마다

서칭해가며 심도있게 배우기도 했다.

 

하지만 이게 결국 장기적으로 나비효과를 줄 수 있는가 하면 그렇지 않다 라는 것. 

적어도 자료구조, 알고리즘을 활용한 골드 이상의 문제면 좋을거라고 생각한다.

 

 

진짜 차라리 이 시간에 토이 프로젝트 하나 만드는게 더 도움이 될거같다.

 

 

 

 

 

 

결국 내가 더 성장하기 위해선...


단순 구현에서 벗어나 수준 높고 좋은 문제들을 풀어야하고,

나의 부족한 점과 아직 갖춰지지 않은 재료들을 구해야한다.

 

나의 부족한 점.

  1. 어떤 한 무기(언어)에 대한 어느정도의 깊은 이해도가 없는 것.
  2. 필요하고 안필요하고의 분별이 잘 안됨.
  3. 기본적인 CS지식이 아직 많이 부족.
  4. 기본 영어실력이 부족하여 코드포스, 릿코더 등 해외사이트 도전이 힘듦. + 대학교재 원문을 혼자 읽기 힘듦, 커뮤에서도...(특히 단어의 부재가 심함//)
  5. 기본적인 수학적 사고가 부족함..(내 나이에 비해 너무 부족하다. 이건 단순히 내가 못한것!)

이정도로 추려볼 수 있고, 이를 보완하고 고치기 위해 내가 지녀야 할 무기는

 

앞으로 내가 갖춰야 할 재료들.

  • 한가지 프로그래밍 언어에 대한 깊은이해(굉장히 추상적인 말이지만 한마디로 기본 문법을 다 이해하고, 이를 통해 내가 구현하고 싶은 것을 구현할 수 있는 정도[언어 라이브러리, 프레임워크 등등 제외])
  • 수학 공부 - 이산수학, 정수론, 확률(이외에 게임쪽이라면 선형대수의 기하벡터, 미적분학을 공부하면 될거 같다.)
  • 자료구조, 알고리즘 공부 하고 직접 구현하기.(나는 자료구조가 뭔지 알고 설명하고까지는 기본의 반이고 직접 구현할 수 있어야만 제대로 알고 있는것이라고 생각한다. 그래서 나의 배움의 목표는 구현할 수 있어야 하는 것!)
  • 영어 공부(이건 솔직히 PS랑 별개로 내가 부족하다 생각해서 할거다.. 영어 실력이 떨어지니 얻을 수 있는 기회가 너무너무 적어진다는 걸 요즘 많이 느낀다...)
  • 이후 대회같은 것에 참가해보기.(앞에 모든게 갖춰지고 난 후 참여해보면 더 큰 시너지를 일으킬 것 같다.!) 

 

만약 이 모든게 갖춰져 있었다면, 지금 풀고 있는 문제들이 내는 나비효과와 시너지는 엄청났을 것이다.

 

 

 

 

결국 내가 하고 싶은 말은.


내가 하고 싶은 말은 브론즈 문제 양치기, 실버문제 뭐뭐 수준낮은 문제들 양치기 등등

 

이런 방법이 나쁘다라고 하는 것이 아니다.

 

난 어느정도 이 방법을 통한 solving이 도움이 많이 됐고, 나름 서칭도 해가고, 하루종일 문제풀다보니

시간 가는 줄도 모르게 재밌게했었다.

 

하지만 내가 노리는 건 이 이상이다. 더 높은 수준으로 가기 위해선 

 

내가 앞으로 해야할건 무엇인지 뭘 해야하는지 정말 검색을 시도때도 없이하고, 나와 같은 고민인 사람들의 글을 찾아보기도 하고, 얻고 찾고 한 결과가 이것이다.

 

아직 난 부족한 점이 많고, 아는게 적어 지금 당장 계속 문제를 푼다해도 이 이상을 넘는 것.

정말 오랜 세월이 걸릴 것이다.

 

하지만 제대로 무기를 갖춘뒤 전장에 나가면 더 오래버틸 수 있고, 더 다양한 방법, 다양한 전술 등 으로

더 많은 경험을 할 수 있다.

 

그래서 난 지금 계속 전투를 하는 것보단 무기를 확보하고, 전술을 습득하는 방법으로 휴전을 한다는 것이다.

(그렇다고 PS를 그만둔다기 보단 단순구현은 꾸준히 풀 생각이다.)

 

 

 

 

마지막으로.


 

브딱이 아니 10일차 입문자가 이런 글을 써도 될련지... 가 아니라 이 글은 그냥 나의 일기다.

에초에 블로그 개설 이유도 나만의 공부일지 + 포트폴리오로 만들 생각으로 만든거다.

 

PS자체도 개발에 큰 영향을 주진 않지만 풀다보니 재밌어서 더 깊게 파고싶은 생각으로 공부하려하는 거기도 하고,

어차피 나중가면 배워야할 과목들이라 미리 공부해도 나쁘지 않다고 생각하기도하고...

 

최근 문제풀이를 놔줘야할 진짜 이유는 과제가 수두룩하게 나오고있고, 곧 시험에, 종강하고 2주 뒤면 군대행이다.....

 

어차피 가면 까먹을꺼.. 브딱이 문제 까먹는건 별 대수로운 일이 아니라 생각해서 그만 놔주기로 했다.

 

아직 써먹을 자료구조, 알고리즘이 없으니

PS시작 자체를 최대한 단순구현 위주로 PS의 감이나 기본 구조를 잡아노려고 하는걸 목표로 했다.

 

뭐 결과적으론 성공적인거 같다. 내가 메타인지를 할 수 있게 만들어줬으니...

 

대충 곧 다가올 2주동안은 뭘하며 보낼지 생각 중이다..

 

내가 생각해둔건

1. 영어공부(토익 고득점을 노리고 있다!)

2. 운동(다니던 헬스장이 이제 안해서... 맨몸운동, 러닝 정도)

3. CS과목 다 찍먹해보기(대부분의 컴공 모든 커리를 훑어볼 생각이다. 후기 글도 올리고 군대 갈 생각!)

4. 사이드 프로젝트 만들기 with 파이썬(클론 코딩이라도 해볼 생각이다.)

 

정도를 생각해두고 있다. 

특히 3번은 도서관가서 책 빌려서 2일~4일 간격으로 속독하고 예제 1~2개 정도 풀며 

그냥 이런게 있고, 이럴때 쓰는구나 찍먹할 생각이다.

(: 자료구조, 알고리즘, 네트워크, 컴퓨터구조, 이산수학, 운영체제(공룡책이 보여서 읽어보려했지만 영어를 보고 조심히 다시 놓아주었다 ㅋㅋ), 보안과 해킹 네트워크(이건 그냥 ctf 도전해보고 대차게 구겨져서 자존심 상해서 볼계획...), 나머진 뭐 db 정도?)

 

다 할 수 있겠는가하면 충분하다 생각한다. 어차피 찍먹이라 깊게 파는것도 아니라서..

 

어차피 게임도 안하는 사람이라 이런거밖에 할게 없다.

내가 괜히 하루종일 PS를 붙잡고 있었겠는가....

덕분에 맨날 4시간 수면을 시켜줘서 죽을 맛이였다...

(게다가 문제티어는 브론즈... ㄹㅇ PS 접고싶더라.. 현타짱 많이 옴...)

 


특히 네트워크, 보안, 수학, 영어는 미친 수준으로 공부할 생각이다.

다음 ctf가 열리면 문제 내가 다 싹쓸이 하고싶어서...

 

뭐 여기까지 흔한 대학생의 푸념이였습니다..

 

PS고수들 너무 부럽슴니다.!!!!! 특히 어린친구들!!! ㅠㅜ 

(하지만 곧 나도 당신들을 따라잡겠어!!)

Comments