Extracurricular Activites
-
[정글 WEEK02_알고리즘] 개발 일지 - 2주차 마무리Extracurricular Activites/정글 2025. 3. 28. 00:13
공부 키워드 - 이분 탐색 - 분할 정복 - 스택 - 큐 - 우선순위 큐 - Linked List - 해시 테이블 지식의 연결✏️ 파이썬 dict는 해시 충돌을 어떻게 해결하고, 해시 함수로 무엇을 쓸까? ◼︎ 해시 충돌은 perturbation probing 기반의 open addressing 방식으로 해결한다. 단순히 버킷들을 한 칸씩 선형으로 탐색하는 것이 아니라, 해시값에서 유도한 perturb 값을 활용해 비트 연산과 시프트를 반복하며 다음 후보 인덱스를 계산한다.perturb는 다음 탐색 위치를 다양하게 만들기 위한 보조 난수 값으로, 아래 코드에서 볼 수 있듯이 시작 인덱스를 계속 변화하게 만들어 충돌을 효과적으로 분산시킨다.hash = 123456789mask = 15 # ..
-
[정글 WEEK02_알고리즘] 개발 일지 - 시험Extracurricular Activites/정글 2025. 3. 28. 00:13
1. 10815_숫자카드 ms의 각 요소 m이 ns에 존재하는지 확인할 때, 이분탐색을 쓰기 위해서 list로 구성한 ns를 정렬했다.만약 m이 ns에 존재한다면 bisect_left(ns, m)의 결과는 기존 인덱스의 왼쪽 값, bisect_right(ns, m)의 결과는 기존 인덱스의 오른쪽 값이 나와 서로 다를 것이다. 이 때는 result에 1 추가한다.m이 ns에 존재하지 않는다면 bisect_left 결과값과 bisect_right 결과값이 같을 것이고 이 때는 result에 0을 추가한다.그리고 매번 print하면 시간초과가 나기 때문에 한번에 result를 언패킹한 결과를 print 했다. 또다른 풀이법으로는 ns를 dict 또는 set으로 구성하고 m이 ns에 있는지 m in ns로 조회..
-
[정글 WEEK02_알고리즘] 개발 일지 - 문제 풀이Extracurricular Activites/정글 2025. 3. 26. 21:34
stack이 LIFO 구조라는건 표면적으로 알았지만 제대로 이해하지 못 하고 있었다. 백준 17608_막대기, 2493_탑, 6549_히스토그램에서 가장 큰 직사각형 순으로 난이도를 높여가며 stack이 어떻게 쓰이는지 확실히 이해하게 되었다. 17608_막대기와 2493_탑은 비교적 stack의 조건을 파악하기 쉬웠는데 6549_히스토그램은 코드를 보고도 이해하기 꽤 어려웠다. 그러다 그림을 그려보며 해결한 과정에 대해서 작성해보려고 한다. '6549_히스토그램에서 가장 큰 직사각형' 풀이 💡 핵심 아이디어 막대기의 높이가 낮아질 때를 이전 막대들의 넓이를 계산할 타이밍으로 잡고 이전 막대의 길이를 높이로 해서 넓이를 계산하는 것이다. 너비는 조건에 따라 달라진다. 🤖 로직 막대기들의 높..
-
[정글 WEEK02_알고리즘] 개발 일지 - 퀴즈Extracurricular Activites/정글 2025. 3. 26. 00:08
퀴즈1. 해시 충돌이 발생하는 원인과 해시 충돌 해결법 중 체이닝에 대한 설명2. Merge Sort 구현3. 링버퍼를 이용한 Queue 구현4. 캐시 메모리 사용 시 컴퓨터 시스템 성능 향상의 이유를 '지역성' 개념으로 설명5. 프로세스와 스레드의 차이점 퀴즈를 통해 보완한 점1. 직접 구현해보면서 진짜로 이해하게 된 병합 정렬(Merge Sort)의 원리 병합 정렬은 배열을 앞, 뒤 두 영역으로 나눠서 각각 정렬 후 병합하는 과정을 재귀적으로 수행하는 알고리즘이다. 이러한 정의에 대한 암기를 넘어 직접 구현해보면서 이해도가 확 올라갔다. 🔍 원리는 아래와 같다.a 라는 배열을 병합 정렬할 때, ① a의 절반을 임시 저장할 buffer 배열에 a 배열의 앞부분 절반을 삽입한다. ② buffer..
-
[정글 WEEK01_알고리즘] 개발 일지 - 1주차 마무리Extracurricular Activites/정글 2025. 3. 23. 21:32
공부 키워드 - 배열, 문자열 - 반복문과 재귀함수 - 복잡도 - 정렬 - 완전 탐색 - 정수론 배상원 교수님의 알고리즘 설계 기법 특강 - 0321 '재귀' 함수 설계를 위한 특강이었다. 핵심적인 내용은 재귀도 결국 함수 호출이라는 거. 다만 내가 짠 함수를 호출하는 것이고, 내가 짠 함수의 역할과 인풋, 아웃풋이 확실하지 않으니 이 함수를 호출해도 프로그램이 정상 동작할 것이라는 믿음이 없는 것이다. 함수를 호출할 때는 '블랙박스'처럼 내부 동작을 알 필요가 없다. 어떻게 구현할 것인지는 부차적인 문제이고 무엇을 구현할지에 대한 정의가 확실히 되어있어야 한다. 주어진 문제의 단위가 충분히 작아서 바로 풀 수 있으면 풀고, 그렇지 않으면 더 작은 문제로 쪼갠다. 문제를 쪼개 단순화하고, 정상 동..
-
[정글 WEEK00_미니프로젝트] 개발 일지 - 공구장터⚡️Extracurricular Activites/정글 2025. 3. 14. 19:45
3월 11일부터 13일까지 3일동안 프로젝트에 푹 빠져있었는데 오랜만에 기분좋은 긴장감을 느꼈다.규모가 큰 프로젝트는 아니었지만 협업하면서 배운 점이 많다. 경력이 없는 팀원들이었지만 구현을 참 잘 했고 열정도 넘쳤다. 한편 git 사용법이은 내가 알려줄 수 있는 게 많았다. 아쉬웠던 부분은 개인적으로 리팩토링을 진행했다. 1. 기획 의도편리한 공동구매 서비스 제공 2. 서비스 소개1. 공구를 원하는 물품이 생기면2. 공구장터에 들어가본다. 2-1. 원하는 물품이 없으면 게시글을 작성한다. 2-2. 원하는 물품이 이미 있으면 해당 물품 게시글에 댓글과 희망 구매 개수를 작성한다.3. 공구가 마감될 때까지 대기한다. 4. 공구장터 슬랙 계정으로 구매 확정 메세지를 받는다. 3. 서비스 프로세스Sl..
-
정글의 시작점에서, 찬찬히 돌아보며Extracurricular Activites/정글 2025. 3. 14. 11:53
지나온 과거에 대한 성찰22년 1월 국비교육으로 시작된 개발자의 길. 참 어려웠다.뿌듯하고 즐거웠던 순간도 많았지만 뭐 하나 쉽지 않았고, 방향성도 이리저리 흔들렸다.그래서 언제나 기본기에 대한 갈증이 있었다.국비교육은 AI, 빅데이터 분야였는데 프로젝트를 하면서 데이터 파이프라인을 담당하며 개발자로서의 커리어를 시작하게 되었다. 2년 4개월정도 첫 IT 회사에서 일했는데 네트워크 도메인이었고, snmp를 사용해 장비 데이터를 수집하는 엔진을 개발했다.글또라는 개발자 글쓰기 커뮤니티에도 들어가 공부한 내용을 블로그 포스팅으로 정리하기도 하고, 웹서비스에 대한 관심이 생겨서 항해플러스라는 재직자 대상 스파르타 코딩클럽 과정을 통해 여러가지 프로젝트도 해보고, 1:1 코칭 등등 내 나름대로 비전공자로서의 한..
-
아마추어에서 프로로: 글, 개발, 나아가 일을 대하는 태도의 변화Extracurricular Activites/글또 2024. 12. 26. 01:46
올 한 해, 부족함과 무기력을 많이 느끼며 힘든 시간을 보냈다. 글쓰기와 개발에서 마주한 문제는 물론, 잘하는 사람들과의 비교가 나를 짓눌렀다. 하지만 날 힘들게 하는 어려움을 극복하면 나의 무기가 된다는 확신 하나로 계속 부딪혔다. 신기하게도 문제를 직면하기로 결심하면서 해결을 위한 단서들이 보이기 시작했다. '잘 쓴 글'과 '좋은 개발자'의 핵심은 결국 '타인에게도 결과물의 가치를 전달할 수 있는가'에 달려 있음을 깨달았다. 이를 위해 피드백을 받아들이고, 단순하지만 확장 가능한 구조를 지향하는 자세를 키워나가고 있다. 그동안 내가 글쓰기와 개발을 대했던 자세와 피드백을 통해 느끼게 된 프로의 자세에 대해서 아래 표로 정리해봤다. 그리고 시련 → 문제 → 노력 → 통찰 → 방향 설정 순으로 2024..