쓸 거리 : TIL, CRUD, 알고리즘 문제(https://school.programmers.co.kr/learn/courses/30/lessons/178871)
오늘은 TIL에 대해서 왜 작성해야 하는지 들었다.
솔직히 자기가 잘 설명할 수 있으면 구지 적을 필요가 없다곤 했다.
그러나 TIL를 적으면 좋은 점이 뭘 배웠는지 기록을 하고 무엇을 했고 경험했는지가 남아 있으니 나중에 기억하기도 좋고
타인(취직 할 때)에게 보여줄 때 나 이런것 했다 라고 설명하기 좋은거 같다.
TIL 이란 Today I Learnded라고 해서 하루 배웠던거를 적는 거다.
-------------------------
CRUD라는 용어가 나와서 뭔지 몰라 찾아봤다.
CRUD는 Create, Read, Update, Delete라고 해서 생성, 조회, 변경(업데이트), 삭제를 할 수 있는 것이다.
내 생각에 블로그의 글 ==> 글쓰기(C) / 적은 글 확인하기 (R) / 글 수정하기 (U) / 글 삭제하기 (Delete) 인 거 같다.
아무튼 저런 기능을 할 수 있는 것이 CRUD이다.
----------------------
코틀린 알고리즘 문제를 푸는데 또 시간초과가 발생했다. 후...
문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/178871
달리기 경주할 때 선수의 위치 조정하기
문제 풀이는 단순했다.
선수가 호명되면 순서가 앞으로 간다. 를 구현하면 됐다.
EX) 선수가 a = 1, b = 2, c = 3, d = 4순서로 달리고 있을 때
d / d / b 순서대로 호명하면
a = 1, b = 2, d = 3, c = 4 순서대로 바뀌는 것이다.
따라서 호명된 사람을 찾아서 앞 순서와 바꾸기만 하면 됐다.
그러나 문제풀 때 시간초과가 떳다. 왜인지 확인해보니 배열의 길이가 무진장 길 때 호명된 선수를 찾는게 오래걸렸다.
운이 없는 경우 맨 뒷사람만 불린다고 하면 위치를 찾는데 엄청 많은 시간이 걸린다.
찾아보니 뭐 시간 복잡도가 O(n)이라곤 하는데 아직 알고리즘?에 대해 공부를 안해서 시간복잡도가 뭔지 모르겠다.
그래서 찾아보니 뭐 b-tree랑 이진 탐색이 있었다. b-tree는 구현을 어캐할지 몰라서 패스했고 이진 탐색을 구현하려 했다.
그런데 이진 탐색을 구현은 가능할거 같았으나 배열을 계속 함수로 넘겨줄 때 배열이 너무 길면 복사하는데 시간이 오래 걸릴 거 같아서 의미가 없어 보였다. (사실 구현하기도 생각보다 어려운거 같았음)
그래서 Map을 쓰기로 했다.
Map을 쓸 때 파이썬의 딕셔너리랑 같은 느낌이라서 생각보다 괜찮았다.
그러나 값을 가져오는데 자꾸 타입이 다르다고 해서 타입을 맞추는데 시간을 썻는데....
솔직히 왜 다른지 모르겠다. Int타입으로 저장했는데 값을 가져오니 Integer로 변환되고 Integer로 저장했는데도 못 가져오고 했다. 그래서 ?(safety Null인가)를 이용해서 값을 꺼내오고 값을 사용하려 하니 또 타입이 안맞는다 해서 어거지로 해결했다. 아무튼 어거지로 해결 했는데 왜 값을 가져올 때 null처리를 해야하는지는 나중에 확인해보겠다.
문제 풀이 : (추가할 것)
------------------------------------
이번에 캠프에서 미니 프로젝트를 할 때 자기 소개하는 페이지를 팀플로 만들기로 했다.
어제 얘기 나왔던게 자기소개 페이지를 각자 만들고(강의 복습 겸) 그 페이지를 찾아 갈 수 있게끔 웹페이지에 개재하고
방명록, 팀 목표 등을 할 수 있는 페이지를 만들기로 했다.
그리고 오늘 하루동안 만든 자기소개 페이지를 발표?하는 시간을 가졌다.
발표하면서 느낀 점이 모두가 아는 것이 다르고 적용하는 방법이 다 다르다는 것이였다.
타인의 발표를 듣는데 모르는 용어도 많이 나왔고 해결하는 방법이 모두 다 달랐다.
더군다나 웹페이지 디자인을 깔끔하게 하거나, 멋있게 하거나, 특색있게 만들기도 했다.
그 것을 보면서 많이 부족하다고 느꼈다. 따라서 공부를 좀 더 해야한다고 느끼게 됐다.
맞다.. 내 한탄이다... (디자인 쪽에 영 자신없다... 블로그 글도 서두 없고 예쁘게 꾸미지도 못하겠다...)
아무튼 내일은 공통적인 부분을 만들기로 했다. 각자 개발화면 공유해서 같은 부분을 만들면서 서로가 같은 것을 구현해서 서로가 부족한 부분을 채우기로 했다. --> 이러면서 깃 연습도 하고 부족한 부분도 배우고...
아무튼 뭐... 이번에 쓸 TIL거리는 이정도 인거 같다.
부족한게 많다고 생각이 든다. 디자인을 잘 하고 싶다든지, 블로그 글 작성도 이쁘게 하고 싶다든지 빨리 개발자가 되어서 이것저것 잘 만들고 싶기도 하고 CS와 알고리즘, 자료구조와 수학, 영어 등등 배울게 많아서 맨날 막막하지만 그래도 시작이라도 해봐야겠다.
'개발관련 > TIL' 카테고리의 다른 글
2024-04-18 (0) | 2024.04.18 |
---|---|
2024-04-17 (0) | 2024.04.17 |
2024-04-15 (0) | 2024.04.15 |
2024-03-27 (0) | 2024.03.27 |
2024-03-26 (1) | 2024.03.26 |