💥 이분 탐색 ▶ 어제도 했던 이분 탐색 코테를 풀 때는 어떤 알고리즘을 사용해서 문제를 풀게 할지 정해서 내는 것이 아니기에 주제를 보지 않고 바로 문제를 봤다. 결과는 역시 처참...뭘 원하는지 몰라 이것저것 생각을 하게 만들었다 이분 탐색이라는 생각은 바로 드는게 아니라 한참을 고민하고 다른 코드도 적어보고 했다가 든 생각이였다. 또한 이분탐색의 주제를 가지고 낸 문제에서 정작 이분 탐색을 이용해 문제를 푼 것은 한문제 뿐이였다. 분발해야지 💥 팀스터디 ▶ 정말 다양한 풀이 방법 나는 전혀 생각하지 못한 방법으로 문제를 푸는 사람들을 보면 너무 신기하다. 또한 코드를 짧게 작성할 수 있다는 사실도 굉장히 흥미로웠다. 이번 사각형의 넓이를 구하는 문제만 해도 이분법을 생각하여 왼쪽에서 가운데로 오른쪽..
항해99
💥 이분탐색 ▶ 문제 풀이 이분탐색을 하는 문제가 정확히 떠오르는 것은 쉽지 않다. 자료구조를 사용하게 하는 문제는 중복을 없앤다던가 순서를 중요시 한다던가 하는 규칙이 존재하는데 이분탐색의 경우는 이분탐색이 아닌 방식으로도 풀수 있다는 것이다. 또한 코딩테스트의 특징 상 수학적 능력을 중요시 하게 되는데 아직 이러한 경우의 수를 바로바로 떠오르는 것이 쉽지 않다. 💥 팀스터디 ▶ 시간복잡도 계산 백준을 기반으로 진행하는 코테이기 때문에 시간복잡도를 계산해도 어떤것이 나은지 확실히 할 수 없었지만 매니저님이 좀더 직접적으로 계산하는 방법을 알려주셨다. 그래서 백준에서 빠르게 계산을 마쳤다 하더라도 해당 코드 자체의 시간복잡도가 우수하다 라고 할 수는 없었다 짧은 데이터에는 빠를지 몰라도 데이터의 양이 커..
💥 오늘 배운 자료구조 ▶ 우선순위 큐, 람다 이번 문제를 풀면서 가장 많이 듣고 다른 분들과의 얘기에도 가장 많이 나온 게 우선순위 큐이다. 우선순위 큐는 큐를 구현한 구현체중 하나로 힙정렬을 하는 자료구조로써 기본적으로 min힙이 기본이 되는 자료구조이다. 즉, 자동으로 데이터를 넣을떄마다 자료를 정렬하는 과정을 볼 수 있는 것이다. 람다는 아직 너무 어렵다.. 인자를 받고 구현체가 하나일때는 익명함수를 바로 구현할 수 있다는건 매우매우 좋지만 아직 딱 떠오르지 않아서 살짝 걱정이긴하다 💥 팀 스터디 ▶ 더 좋은 결과 팀스터디를 진행하면서 서로 토론하면서 어떤 기술을 사용했고 어떤 알고리즘이 좋은지 생각을 더욱 많이 하게되었다.
💥 새롭게 만난 팀원 ▶ 어색.. 아직 너무 어색하다. 다들 처음 뵙는 분들이고 기존에 다른 분들의 이름을 잘 안봐서...그래도 뭐 2주면 천천히 친해지지 않을까? 💥 팀 스터디 ▶ 문제 해설 팀 스터디를 통해 문제의 해결 방법을 생각해보고 어떤 방식으로 생각하고 풀었는지 말을 나누는 과정을 통해 대표 코드까지 작성하는 것은 이제 통일화 되는 기분이 든다. 아직은 서먹하기 때문에 말이 없는거 같다. 일마다 풀어야하는 필수 문제까지는 줄어들었지만 자료구조를 사용하는 일차까지 오게 되면서 좀 더 복잡해지는 것 같다 ▶ 오늘의 알고리즘 Deque 기존에는 이론으로만 알고 있었던 Deque를 직접 사용할 수 있어서 좋았다. 기존엔 그냥 큐를 implement하여 들어오는 곳과 나가는 곳을 한방향이 아닌 양방향으..
💥 코딩 테스트 오늘은 코딩테스트를 진행하여 팀을 나누는 날이 왔다. 문제는 예상보다 더 쉽지 않았다 무조건 맨 앞으로 갈것같은데 영 느낌이 좋지 않다. 문제는 탐색을 하는 위주로 나왔고 그중 DFS 를 하여 풀수있는 알고리즘이 있었다. 문제를 보고 알고리즘을 생각해 낸 것이 내심 기분이 좋았다. 💥 생각보다 중요한 전체 탐색 어제 브루트 탐색을 통해 전체 탐색또한 알고리즘이 있다는 것을 알게 되었다. 전체 탐색을 하는 알고리즘이 얼마나 중요한지 잘 모르고 그냥 그렇게 넘어갔는데 생각보다 굉장히 중요한 내용이였다. 전체 탐색은 문제의 구현까지 연결되는데 내가 그것을 잘 못한다는게 너무 아쉽다 ▶ 메모이제이션 DFS 를 구현하는 과정에 메모이제이션을 사용하려고 했는데 도저히 이해가 가지 않았다. 3차 배열..
💥 전체 탐색 (브루트포스 알고리즘) 브루트 포스 : 무식한 힘으로 해결 할 수 있다. 완전 탐색 알고리즘 즉, 가능한 모든 경우의 수를 모두 탐색하면서 요구 조건에 충족되는 결과 만을 가져온다. 이 알고리즘의 강력한 점은 예외 없이 100%의 확률로 정답을 출력한다. 선형 구조를 전체적으로 탐색하는 순차 탐색, 비선형 구조를 전체적으로 탐색하는 깊이 우선 탐색과 너비 우선 탐색이 전체를 탐색하는 기본적인 도구이다. 브루트 포스는 여기서 BFS(너비 우선 탐색)과 관련이 깊다. Tip ) DFS(깊이 우선 탐색)은 백트래킹과 관련이 깊다 완전 탐색 알고리즘이 이렇게 이름으로 된지 몰랐다. 왜냐하면 그냥 모든 것을 검색하고 맞는지 확인만 하는 것이기 때문에 이런 알고리즘이 있었다는 사실조차도 몰랐다...노..
👅 오늘 학습한 내용 ▶ hash table map을 많이 사용하면서 hashmap을 정말 많이 사용했는데 기술매니저님의 질문에 말문이 막혔던것 때문에 새롭게 학습하기 시작했다 hashmap은 hashtable과 같은 것으로 자바에서는 separate chaining을 이용해 구현이 되어있다는 것을 알 수 있었다. hash의 장점을 그대로 사용하고 있기 때문에 삽입과 삭제, 색인또한 O(1)으로써 굉장히 빠른 속도를 보였다. 또한 hashset도 연결되어 궁금했었는데 신기하게도 hashset이 hashmap으로 구현되어 있었다. 그래서 결국 속도는 굉장히 비슷한것으로 나타났다. 👅 팀스터디 ▶ 다양한 풀이 방법 문제의 난이도가 점점 높아지면서 풀이의 방법이 다양해지기는 했지만 고민을 더해서 내보내기에는 ..
👐 티어가 올라가기 시작 ▶ 초반과 다른 난이도 초반에는 난이도가 어렵지 않았다. 논리적으로나 아니면 조금만 생각해봐도 풀 수 있는 문제로 구성이 되어있었다. 하지만 하루하루가 다르게 난이도가 급상승하는 것을 느낀다. 내일의 문제를 오늘 보는 편이 아닌데 팀 스터디 하시는 분들이 점점 어려워지는거 같다고 하셨다. 최근에 BFS 와 DFS를 이용한 코딩테스트를 공부하지 않았다면 오늘 문제는 풀지 못했을 것이다. 점점 어려워지는 난이도...점점 몸에 힘이 풀리는 중ㅋㅋ 👐 팀스터디 ▶ 다른 사람들은 안어려운가..? 다른 분들은 용캐 이리저리 잘 푸시는것 같다. 궁금한거나 풀면서 의아했던 점을 나누는걸 보면 고민이 드는 쪽은 다들 비슷비슷한거 같다. 하지만 이제 뒤로 가면 갈수록 문제를 아예 못푸는 날이 올것..
💐 강의 ● 다양한 자료구조 문제가 어렵지 않다보니 조금 다양한 생각을 해볼 수 있었다. 배열을 사용할지 자료구조를 사용할지 for문의 불필요한 탐색은 없는지 등등 생각을 좀 더 여러 방면에서 해보게 될 수 있는 시간이였다. 하지만 내일은 더 어려울 예정이라고 하니 더 걱정된다 💐 오늘의 팀스터디 ● 배울게 많군 확실히 사람들이랑 코테를 같이 푸니까 성능에 대한 생각을 많이 하게 된다. 코드의 간결성과 가독성 그리고 성능까지 평소에는 풀면 장땡이였는데 팀스터디를 시작하면서 성능에 대한 고민이 많아졌다. ● 기술 매니저님 기술 매니저님에게 물어보면 답을 알려주신다기 보다 생각해봐야할 방향이나 가고있는 방향을 제대로 잡아주는 경우가 많았다. 근데 문제가 그리 어렵지 않아서 물어볼게 많지 않았는데 내일부터 문..
- 오늘 진행된 강의에서 학습한 내용은 무엇인가요? - 이번 주 진행된 팀 스터디에서 얻은 인사이트는 무엇인가요? 💐 코테를 위한 강의 ● 1일차는 쉽다? 코테가 본격적으로 시작되었다. 그래도 풀어봤거나 오늘안으로 하기 쉬운 코드들로 이루어져 있어서 비교적 쉬웠다. 물론 딱히 알고리즘이나 자료구조를 사용해서 문제를 푸는 것이 아닌 다른 방식으로 문제를 풀기 때문에 쉬웠을것이다. 앞으로 얼마나 어려워질지 걱정이 된다 💐 정식으로 시작한 코테 팀 스터디 ● 팀 스터디 시작 역시 팀스터디는 생각보다 어렵다. 각자 본인이 작성한 코드를 올리고 사람들과 비교하는 것이 쉽지 않다. 다른 사람들의 코드를 읽는 것 그리고 자신의 코드를 리뷰하는 것은 상당히 번거롭고 어려운 일이다. 그리고 남의 코드를 선택하고 팀 코드..