TIL(176)
-
(TIL) 20210531
1.Facts(한 것) C++, 자바스크립트로 프로그래머스 문제 풀기 알고리즘, 자료구조 복습하기 2.Findings(배운 것) MST 알고리즘에 대해서 복습을 했다. kruskal 알고리즘과 prim 알고리즘에 관해서 수업을 들었는데 자료구조 그래프에 대한 이해도가 떨어져서, 자료구조를 복습 할 수 밖에 없었다. c++로 prim 알고리즘을 어떻게 구현할까 찾아보다가 C++11부터 추가된 unordered_map이라는 라이브러리가 생겼고, 해시맵이랑 거의 동일하게 사용이 가능했다. 우선순위 큐를 사용해서 동작하는 프림 알고리즘은 바이너리 힙을 사용했을때 비용이 ElogV이고 피보나치 힙을 사용했을때 비용이 E +VlogV다. 3.Feeling(느낀 점) 트리랑 그래프 문제를 왜 못 풀었는지 알겠다.....
2021.06.01 -
(TIL) 20210528
1.Facts(한 것) 학교 수업 듣기 C++, 자바스크립트로 프로그래머스 문제 풀기 알고리즘 수업 듣기 자료구조 정리 및 포스팅 2.Findings(배운 것) 여러 알고리즘 문제를 풀다보면, 항상 트리 관련 문제는 풀지 못했었다. 그때는 그냥 단순히 실력이 부족해서 그렇거니 했다(사실 이게 문제이긴 하다) 하지만 실제는 자료구조에 대한 배경지식이 전무해졌기 때문이었다. 대부분의 트리 문제는 BFS와 DFS문제인데, 이 두 종류의 문제를 풀려면 이진 트리의 개념을 기본으로 탑재했어야 했는데 그렇지 못했다. 이진트리는 포화 이진 트리, 완전 이진 트리와 이를 제외한 이진 트리가 있다. 주로 사용하는 트리는 완전 이진트리를 사용하며, 노드간의 연결을 표현하는 방법은 배열로 표현할 수도 있고, 링크(연결리스트..
2021.05.28 -
(TIL) 20210524
1.Facts(한 것) 백준 문제 풀기 HTML공부하기 학교 수업 듣기 swift 기본 문법 공부하기 2.Findings(배운 것) C++17에서는 라이브러리에서 최대공약수와 최소공배수를 위한 함수가 존재한다. gcd와 lcm이 바로 그것인데, 기존에는 gcd와 lcm을 재귀적으로 호출해서 구현해야 했던 반면, 이제는 단순히 함수 호출만으로 쉽게 문제를 풀 수 있게 되었다. swift 에서는 Optional이라는 변수가 있다. 값이 있을 수도 있고, 없을 수도 있다니... C에서는 값을 설정하지 않고 프린트를 하면 쓰레기 값을 출력하지만, Swift에서는 nil(없음)을 출력한다. 당연할지 모르는 말이지만, Optional 변수를 다른 변수에 할당할 수는 없다. 옵셔널 변수가 있을지 없을지 모르니까 말이..
2021.05.25 -
(TIL) 20210430
1.Facts(한것)프로그래머스 카카오 인턴십 문제 풀기백준 문제 풀기학교 과제 제출수업듣고 퀴즈풀기운동 2시간2.Findings(배운것)"절박한 순간, 이루어진다" 중간고사 과제를 초고만 작성해두고 미루다 결국 제출날까지 미뤄버렸다. (원래 그때그때 처리하는 성격이지만, 이번 중간고사는 뒤로 미룬 과제들이 꽤나 있었다. ) 제출날이 되어서야 참고할 만한 논문들을 읽고, 관련 기사들을 찾아가면서 글을 작성했다. 마감일자가 다가 오기 전까지는 이런저런 논문 읽고 썼다 지웠다를 반복했는데, 마감날이 되자마자 언제 머뭇거렸냐는듯 3시간만에 과제를 끝냈다. 역시 과제는 마지막날. "습관은 쉽게 고쳐지지 않는다" 어제 오늘 c와 c++로 해결한 문제들을 파이썬으로 다시 풀어보고 있다. 사용하는 자료구조도 다르고,..
2021.05.01 -
(TIL) 20210429
1.Facts(한것) 프로그래머스 카카오 인턴십 문제 풀기 학교 과제 2.Findings(배운것) 카카오 인턴십 문제는 레벨1이든 레벨2이든 어렵다(문제도 어렵지만, 국어 독해력이 필요하다) c++로는 구현하려면 세줄, 네줄이 필요하지만 파이썬으로는 2줄이면 구현 가능한것이 많다. 3.Feeling(느낀점) c++은 유용하고, 익숙하지만 문제를 해결함에 있어서 코드가 복잡해질 수 있다는 단점이 있다. 파이썬은 익숙하지 않지만 문법이 간결하고 해결하는 다양한 알고리즘이 있어서 문제 해결에 용이하다. 결론 : 파이썬으로 빠르게 갈아탄다. 내일부터는 블로그에 백준, 프로그래머스 푼 문제의 해결방법들을 같이 올릴 생각이다. 4.Affirmation(자기선언) 다시 매일 성장하자 카카오 코딩테스트 준비
2021.04.30 -
(TIL) 20210422
1.Facts(한것) 프로그래머스 알고리즘 문제풀기 백준 알고리즘 문제 풀기 알고리즘 개념 복습하기 장개석 인물론 쓰기(과제) 2.Findings(배운것) C++에서의 정렬을 할때 sort(arr.begin(), arr.end(), greater()); 와 같이 내림차순 정렬이 가능하다. min_element(arr.begin(), arr.end())를 사용하면 배열에서의 가장 작은 값을 반환하고 erase함수를 통해 삭제도 가능하다. int 형인지 판별하려면 1.00을 나눠서 같은지 판별하면 된다. 3.Feeling(느낀점) C++은 정말 편리한 함수가 많다 그 동안 C스타일의 코딩을 고수(?)해 오다가 자바스크립트의 편리한 메서드에 현타가 잠깐왔었는데 C++의 편리한 메서드를 보니, 마음에 평화가 찾..
2021.04.23