항해99/회고_일지

[항해99] 2주차 회고 WIL (Weekly I Learned)

햄❤️ 2021. 3. 14. 21:35
반응형

2주차에는 알고리즘 문제를 풀었다. (백준) 기초수학부터 재귀, 이분탐색, 동적계획법, 정렬, 큐, 스택 등등 일주일에 배우기에 좀 벅찼으면서도 재밌었다. (?) 솔직히 재미보다는 좌절감이 더 많이 들었지만, 지나고보니 그래도 짧은시간에 배운 것 치고 많이 늘었다. 

아직도 스스로 완벽하게 코드를 짜진 못해도 이제 대충 이렇게 짜는거구나? 에 대한 감은 오는 것 같다!!  

 

[배운것]

 

1) 탈출조건, 무한루프, break 등등 반복문

여기에서 많이 헤맸다. for문 2개를 탈출하려면 break가 2개여야하는구나, 줄 안맞춰쓰면 무한루프 도는구나, 탈출조건 제일 처음에 써줘야하는구나 등등. 기본 파이썬 문법이지만 급하게 먹다보니 대충 씹어 넘기다 체한 것 처럼, 기본적인거에서 오류가 제일 많이 났다. 그 떄마다 구글링으로 검색하면서 하나씩 채워갔다.  

 

2) 알고리즘 코딩 테스트 전략 

금주에는 알고리즘 튜터님의 코딩 테스트 전략&적절한 공부법을 설명해주는 시간이 있었다. 덕분에 프로그래머스라는 사이트를 알게되었다. 난이도별로 적절하게 문제가 나눠져있는데 혼자 공부할때는 프로그래머스 난이도 2부터 한번 해봐야겠다는 생각이 들었다. 그외에도 코테 공략을 위해 배경지식/구현력/문제해결능력을 기르는게 중요하다고 하셨는데, 내가 보기에 나는 아직 배경지식 부분에서 구현력으로 못넘어가고 있는 것 같다. 공부하고 또 공부하기

 

3) 시간복잡도, 시간을 줄이는 효율적인 코드 

 갈수록 시간초과로 틀리는 경우가 생겼다. 나는 코드를 짜는 생각만했지, 시간 효율에 대한 생각을 많이 못했었다. 특히 동적계획법에서 많이 느꼈다. 시간을 줄이려고 메모이제이션에 값을 저장하는 방법을 통해 재귀보다 시간을 아낄 수 있었다. 그 외에도 input 대신 sys.stdin.readline 이용하는 것도 시간을 줄이는데 good!!

 

4) 디버깅!!!

 디버깅 하는법을 배웠다. 진짜 최고다. 식이 안될때는 하나씩 과정을 뜯어보면서 이해했다. 디버깅을 통해서     이해한   문제도 더럿 있었다.

 

 

 

[느낀것]

 

1) 남에게 알려주는 것이 나에게 도움이 많이 된다.

백준 10815 숫자카드 문제 풀이를 녹화하여 유튜브에 올려봤다. 코드를 직접 남한테 설명하기 위해서 ppt로 그림도 그렸는데, 이게 굉장히 나한테 도움이 된다. 설명하려고 이분탐색 강의도 한번 더 보고, 주석도 열심히 달았다. 남을 알려주면서 배우는게 크다는 것! 

 

2) 모르는 개념은 집중해서 파고들자.

 이번주는 이분탐색, 동적계획법 문제를 집중적으로 풀었다. 처음엔 뭔말이야? 하다가 계속 푸니까 흐름이 보인다. 아 내가 개념 1개만 배우고, 관련 문제 1개만 풀고.. 이래서 혼란스러웠구나! 

 

3) 그래도 더디다 but 조바심은 갖지말자.

아직 너무 많이 부족하다. 남들 8개 풀때 4개도 버겁게 풀어낸다. 조급해지니 답지에 손이간다.

 but 나는 슬로우러너이고, 탄력이 붙기 시작하면 속도를 내는 선수다. 조바심 갖지는 말되 꾸준히 열심히 하자!!! 

 

 

 

[아쉬운 것]

 

 1) 알고리즘 문제 어떻게 풀지 모르면 최소 5개 이상의 답지를 찾아보고 나한테 가장 적합한 방식을 찾자

 문제를 1시간 이상 고민하다가 힌트만 좀 찾으려고 검색하다가 답지를 보게 되는데, 그게 너무 싫었다.. 그 답지를 보게되면 내 생각이 그 답지의 방식에 국한되는 것 같다. 

 -> 어차피 답지를 보게된다면, 최소 6개 이상의 답지를 찾아본다. 사람들마다 각각 방식의 차이가 있다. 그 중 가장 깔끔하면서 너무 어렵지 않은 방법을 선택하고 최대한 안보면서 코딩하려고 했다.

 

 2) 파이썬 개인 공부 틈틈히 하자. 기본기가 탄탄해야 알고리즘 문제를 풀어낼 수 있다. 

파이썬 문법 오류가 많이 난다.. 그래서 이번주 일요일에는 알고리즘을 all stop 하고 파이썬 개념 강의를 반복해서 들었다. 기초가 탄탄해야 문제를 푸는데 너무 아쉽다. 파이썬 공부한 것도 틈틈히 블로그에 올려야겠다.

 

 3) 효율적 데일리 스케쥴 짜기!!! 시간 배분을 효율적으로 하자. 개인공부를 놓치면 안된다.

다음주부터 주특기 공부인데, 자바스크립트 공부를 좀 하고싶다. 하루에 2-3개씩이라도 강의를 듣고자한다. 하루 스케쥴을 좀 잘 짜야할 것 같은데, 매번 포스트잇에 해야할 일 리스트를 쭉 적고 밤에 포스트잇 보면 1-2개씩은 못했다. 시간배분을 효율적으로 하고, 팀 스케쥴에 따라가다가 개인공부를 놓치는 일이 없어야겠다.   

 

 

728x90
반응형