[WEEK03] 10월 8일 : 회고 및 반성

2022. 10. 8. 03:28SW사관학교 정글_개발일지

 

무 궁 화 꽃 이 피었습니다


WEEK02의 마무리와 함께 WEEK03이 시작되었다
WEEK02 에서 갑자기 문제 난이도가 급상승해서 제대로 풀지 못하고 넘어간 문제들에 미련이 남았어서, WEEK03 에선 '상' 문제라도 겁먹지 말고 풀어보려고 한다. 그러려면 시간 투자를 많이 해야겠지만, , , 시간을 조금 더 효율적으로 쓰면 되겠지!
열심히 하는것만이 능사는 아니라는 생각도 든다. 내가 부족한 부분, 약한 부분을 캐치해서 그 부분을 채워나가는게 앞으로 중요할 것 같다. 시간과 내 체력은 한정적이고 해야할 것은 많으니 어디다 투자할지 잘 생각하면서 정글 생활을 해야겠다!



WEEK02 4조 이별의 햄버거

이번 시험에선 처음으로 푼 문제를 발표해봤다. 잘 설명할 수 있을거라는 자신이 있었는데 막상 나가보니 떨리기도 하고 생각만큼 전달이 잘 되지 않는 것 같아 조금 아쉽기도 했다. 아무래도 시험 시간에 급하게 코드를 적다보니 코드 정리가 덜 되어있는 점도 좀 아쉬웠다. 설명을 좀 더 잘하고 싶어서, 앞으로도 기회가 생길때마다 다른 사람들에게 설명해봐야지 !!




WEEK03 2조 만남의 곱창

정글 생활의 가장 큰 낙 = 맛집 탐방
주위에 맛집이 너무 많다 . . . 그냥 아무데나 들어가도 다 맛있어서 행복하다 ㅠ.ㅠ
새로 만난 팀원분이 추천해주셔서 같이 왔는데 정말 맛집이었다. 전민동 정체가 뭐야........


 


전민동 맛집을 다 정복해보고 싶어서 맛집 지도를 만들고 있다 ㅎ.ㅎ 회색은 안가본 곳이고 파란색은
한번이라도 가본 곳인데......... 이대로면 정말 정글 끝나기 전에 전민동 음식점들을 정복할 수 있을 것 같다
잔고는 가난해지는 중이라서 저녁은 밖에 나가지 말고 라이트하게 먹으려고 한다 ^ㅠ^




 

행복하자 🌼

WEEK03 주제는 트리, 그래프, BFS, DFS이다.
학부 시절 부전공을 하면서 알고리즘 개론 시간에 공부했던 것들인데, 그때도 정말 어려워했던 기억이 공부하면서 새록새록 떠오른다. 어찌어찌 책을 읽고 개념을 이해하여도, 그것을 컴퓨터가 이해하도록 구현시키는건 또 다른 문제라서 어렵다.

사람한테는 노드를 그리고 선을 그려서 이해시킬 수 있지만 컴퓨터한테 트리 그림을 그려줄 수는 없으니까 😂
( 근데 생각해보니까 가능할것같기도 . . .? ㅋ ㅋ )



오늘은 문제를 풀면서 나의 약점? 조금 좋지 않은 습관들을 많이 발견했다.

1. 예외조건이나 반례에 대한 충분한 고민 없이 코드를 작성한다
' 일단 돌아가면 그만이다 ' 라는 마인드가 있고 성격이 급해서 일단 아이디어가 생각나면 충분한 정립 없이 코드를 작성해버리는 버릇이 있다. 요즘 시간이 부족하다 느껴서 더 심해졌다.
잘 얻어걸리면 빠르게 문제를 풀 수 있지만, 요즘은 꼭 문제 예제 케이스는 통과하는데 막상 제출하면 ' 메모리 초과 ' ' 시간 초과 ' ' 틀렸습니다' ' 런타임 에러 ' 등등을 숱하게 본다.... 그러면 그제서야 반례를 뒤져서 넣어보고 디버깅을 한다.
(반례 스스로 생각하는게 어려워서 남의 반례에 의존한다 ㅠ.ㅠ....)
이것도 틀린 방법은 아니겠지만 오히려 반례 찾고 고치느라 시간 낭비를 더하고 있는게 아닐까 하는 생각이 들었다. 처음부터 새는 구멍이 없도록 잘 막아두면 더 빨리 끝났을수도 있는데..

경험상 내가 자주 실수하거나 간과하는 부분은 이런 것이 있다.

- List index error
for 문의 range를 잘 확인하지 않아서 자주 틀리는 부분이다 . . .디버깅 해보면 바로 고쳐지긴 하지만 앞으론 시간 낭비를 줄여야지

- 재귀의 종결 조건
재귀는 항상 종결 조건 잘 쓰는게 너어무 중요하다.
종결 조건을 적절하게 넣지 않으면 재귀가 끝나지 않는다 (최근에 segmentation falult도 봤다 ㅋ ㅠㅠ) 무지성으로 재귀함수를 쓰지 말고 꼭 재귀가 어떻게 끝나게 될지 그려보고 함수를 짜자

- 문제 조건 대충 확인
생각보다 문제가 우리에게 엄청 많은 정보를 주는데, 글만 열심히 읽고 문제 내 변수의 범위나 예외 조건은 대충 읽을 때가 많다. 변수의 범위에 큰 의미가 있다는 것을 최근에 코치님이나 다른 분들의 조언(?)을 통해 깨달았다. 예를 들어 변수의 범위가 10만 이상이고 시간제한이 1초면 O(n^2) 알고리즘은 쳐다도 보지 말아야 한다. 이중 for문 쓰고 싶은 마음을 접고 침착하게 nlogn 알고리즘이 뭐가 있나 생각해봐야 한다.
그리고 내가 자주 틀리는 반례는 변수 범위의 끝값에서 나올때가 많다. N=1 일 때 등.. 꼭 테스트해보고 제출하자

써놓고보니 ^ㅡ^ 부주의한 부분이 정말 많다. 꼭꼭 명심하고 앞으로는 시간 낭비와 비효율을 줄이자..


2. 남의 코드를 잘 안보려고 한다
문제를 한번 잡으면 내가 풀어버려야 한다는 강박.. 의미없는 쫀심을 부리는 경우가 많다. 물론 감도 안오면 답을 보지만 풀릴 듯 말듯 하면서 답이 나오지 않는 경우... 이럴 때 은근 나의 풀이와 아이디어에 애매한 확신이 있어서 고집을 부리게 된다 ㅋ ㅋ ㅋ 사실 아예 잘못 접근한 경우도 많은데 .... 이때 포기를 안하면 소위 말하는 삽질을 하게 된다. 물론 삽질도 도움이 되지만 적은 시간에 많은 것을 풀어보고 터득해야 하는 정글에서는 삽질에 시간낭비를 하는건 지양해야하는게 맞는 것 같다.
오늘 삽질을 너무 많이해서 문제를 많이 못풀었다.
덕분에 크루스칼, 프림 알고리즘을 더 이해하게 되었지만 삽질을 오래 하고 나니 너무 지치기도 했다. 30분 해보고 안되면 깔끔하게 검색해서 해결해버렸으면 정신 건강도 시간도 지켰을텐데 ㅎ....
그리고 세상엔 똑똑한 사람이 참 많고 그런 분들이 친히 인터넷에 풀이도 올려주시고... 보고 배우고 따라하는게 내 발전에 좋을 것 같다 ㅎ.. 안풀리면 주위에 도움 요청도 많이 해보고, 조금 더 다양한 생각을 수용할 수 있도록 노력해야겠다.



오늘 글은 쓰다보니 반성문이 되었다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋ 이런 약점을 고치면 알고리즘 문제를 좀 더 잘 풀 수 있지 않을까 싶다!!
슬기로운 코딩생활 가보자구




그리고 그동안 도움 주시거나 놀아주시고 챙겨주시는 정글 분들 ,,, 항상 감사합니다
덕분에 힘들지만 재밌게 이겨내는 중입니다 😘
끝까지 화이팅이에요


'SW사관학교 정글_개발일지' 카테고리의 다른 글

[WIL] Project 2 - User Program  (0) 2022.11.29
[WEEK03] 10월 9일  (1) 2022.10.10
[WEEK02] 9월 30일 : 이분탐색의 날  (5) 2022.10.01