목록전체 글 (167)
No Limitation
오늘은 예비군을 마치고, 모처럼 회사를 출근하지 않고 저녁 일찍 여유가 생기는 날이었다. 평범하지는 않는, 어쩌면 여유라는 것이 생긴 하루다. 하지만 나는 이 여유라는 친구가 무서울 때가 많았다. 갑작스럽게 생긴 넉넉한 시간.. 무얼 해야 할지, 어떻게 시간을 보내야 할지 몰라, 늘 부족한 부분을 메꾸기 위해 공부를 하거나 아니면 PC방에 가 시간을 때우는 것으로 일상을 보냈었다. 아니면 회사 일을 했던 거 같다. 누군가는 이상하게 볼 수도 있다. 왜 회사 일을 하지? 왜 자기 시간을 잘 못 보내지? 우선, 대부분의 경우에는 일이나 공부에 시간을 쏟았었는데, 아마 필자가 하고 있는 업무에서 충분한 지식을 갖지 못하고 있다고 생각하고, 또 주변 동료들에 비해 업무 속도나 스킬이 많이 부족하다고 생각하기 ..

참고 포스팅 :https://angeloyeo.github.io/2021/02/08/GMM_and_EM.htmlhttps://untitledtblog.tistory.com/133 GMM을 이해하기 전에 우선적으로 먼저 이해해야하는 것이 바로 Maximum likelihood (최대우도법) 개념이다. 우리는 특정 데이터가 있고 label이 있는 경우, 그 데이터들이 가지는 분포를 추적할 수 있는데, 예를 들어 아래와 같이 빨간색 데이터와 파란색 데이터가 있을 때 저 높이 값이 최대가 되게 하는 분포를 찾을 수 있다.다음 두 그림을 보면, 위쪽과 아래쪽을 비교했을 때, 아래쪽이 보다 데이터의 특성을 잘 반영하는 분포를 찾았다고 할 수 있다. 즉, 저 오른쪽의 수식 값 (높이)이 더 큰 것이다. 즉 더 높이가..
본격적으로 취준 전쟁에 뛰어든지 약 2달이 되어간다. 많은 기업에 원서를 냈고 감사하게도 2군데 면접, 3군데 코딩테스트를 치르고, 또 다른 서류 결과를 기다리고 있다. 정신 없게 면접과 시험을 보는 와중에 일전에 제출했던 저널에 revision 결과가 나왔다. 솔직히 Reject도 각오하고 낸 높은 저널이었는데 major revision이라도 온 것에 감사했다. 봄 바람이 불고 벚꽃이 여느 때와 같이 아름답게 피지만, 나는 안타깝게도 올해 역시 정신 없는 하루의 풍파 속에서 꽃의 향기를 누릴 여유가 없다. 아니 어쩌면 스스로 그럴 자격이 없다고 판단해서 미리 마음을 내려놓은 것인지도 모르겠다. 정말 가고 싶었던 기업의 면접을 조지고(?) 많은 서류 광탈과 코테 탈락의 향연에서, 또 자식 같이 소중한 논..
https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Union Find를 이용해 disjoint set을 찾아 노드의 수에 따른 차가 가장 큰 경우를 찾으면 되는 문제. 특별히 자체 구현 코드에서 마지막에 최종적으로 parents를 업데이트 하는 코드를 잊지 말자 def Find(v,parents) : if parents[v] != v : parents[v] = Find(parents[v],parents) return parents[v] def U..
https://www.acmicpc.net/problem/12904 12904번: A와 B 수빈이는 A와 B로만 이루어진 영어 단어가 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란 수 www.acmicpc.net 아이디어를 공부하면 좋을 거 같은 문제 이 문제를 푸신 다른 분들 풀이가 좋아서 공부하면 좋을 듯 https://growth-coder.tistory.com/231 [백준 12904][파이썬][그리디] A와 B https://www.acmicpc.net/problem/12904 12904번: A와 B 수빈이는 A와 B로만 이루어진 영어 단어가 존재한다는 사실에..

https://school.programmers.co.kr/learn/courses/30/lessons/68645 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이전에 풀었던 문제였는데, 다시 복습 차 시도 다시 풀어도 어려운 문제다.. 단순히 indexing으로 시도해보려고 했지만, 틀린 문제도 있었고 뒤에 유형에서는 시간초과가 발생. 처음 시도한 코드 def solution(n): triangle = [ [0]*i for i in range(1,n+1)] k = 0 triangle[0][0] = 1 cum = 2 ### 외곽 먼저 처리 for i in..
https://school.programmers.co.kr/learn/courses/30/lessons/87946?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 본 문제는 완전 탐색 카테고리에 해당하는 문제. 사실 이 문제를 푸는 다른 방법이 생각나지 않아 일단 DFS로 구현해보았는데 당연히 시간 초과가 날 줄 알았음. 하지만, 막상 돌렸을 때는 통과가 됨. 나중에 찾아보니 대부분 비슷하게 푸신 듯. 다만 주의해야 하는 부분은, dfs를 돌아갈 때 마지막에 탐색하지 못하는 던전 케이스에 대해 return할 때는 count를 ..
https://school.programmers.co.kr/learn/courses/30/lessons/42628?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 예전에 풀었던 이중우선순위 큐 문제 복습. 전에는 heapq._heapify_max() 라는 함수를 썼었는데 사실 이런 함수 말고 그냥 -1을 곱해주는 형태로도 max_heap은 쉽게 구현할 수 있다. 당연하지 사실 min_heap의 반대가 max_heap일 뿐이니까 level 3이지만 비교적 쉽게 구현할 수 있는 문제 import heapq as hp def sol..
https://www.acmicpc.net/problem/11725 11725번: 트리의 부모 찾기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. www.acmicpc.net 기존에 Union Find의 rank 개념을 활용해서 문제를 풀었고 어지간한 반례를 다 풀었었는데 틀렸습니다가 나온다..ㅠㅠ 그래서 여기저기 공부하다 인접 노드를 활용해 BFS를 이용하여 탐색으로 푼 아래 블로그 분의 포스팅을 참고하였고 공부하는 겸 구현해보았다. https://velog.io/@dark6ro/%EB%B0%B1%EC%A4%80-11725%EB%B2%88-%ED%8A%B8%EB%A6%AC%EC%9D%98-%EB%B6%80%EB%AA%A8-%EC%..
아래 유형들은 최소 일자를 count하는 것이기 때문에 BFS를 수행할 때, 방문한 노드를 queue에 넣기 이전에 동일한 날짜에 시작하는 point부터 먼저 queue로 넣어야 한다. 추가로 현재 위치하는 counting이 같은 날짜이므로 이후 누적되는 날짜를 더해주어야하기 때문에 visited에 들어간 값에 +1을 해주며 날짜를 누적하는 방식으로 동작함을 기억하자. 대표 예재, 백준의 토마토 https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acm..