'Development' 카테고리의 글 목록 (18 Page)
본문 바로가기

Development

(155)
[Hash] 프로그래머스 level 1 완주하지 못한 선수 python 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 Participant, completion을 HashMap 자료구조로 변환 후 '-' 연산을 하는 방식을 떠올렸으나. 적당한 key나 value 값을 못 골랐다. 찾아보다가 Counter를 사용하면 목적에 위 방식에 딱 맞는 자료구조로 변환이 가능해서 간단하게 구현이 가능하였다. Counter Python의 collections 라이브러리에는 데이터 컬렉션과 관련된 다양한 유용한 클래스..
[정렬] 프로그래머스 level 2 H-Index python 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/42747 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 문제 접근 citations 각 요소들을 비교하면서 인용 횟수를 세야하나..? 그럼 이중 for문을 써야 하나..? 그래도 뭔가 이상한데.. 다시 문제 접근 1. 가장 인용횟수가 높은 논문 인덱스부터 정렬한 후 2. 0회 인용 횟수부터 시작해서 논문 하나씩 비교해 나가면서 +1 하다가 3. 인용 횟수보다 더 낮은 인용 횟수의 논문이 나오면 break 이런 식으로 간단히 풀 수 있었다.. 코드..
[개발일기] 이 코드에서 Semaphore 사용하는 이유가 무엇인가요? Semaphore? 세마포어(Semaphore)는 컴퓨터 시스템 내에서 다수의 프로세스 간의 활동을 조정하기 위해 사용되는 일반적인 변수입니다. 세마포어는 상호 배제(Mutual Exclusion)를 강제하고 경쟁 조건(Race Condition)을 피하며 프로세스 간 동기화를 구현하는 데 사용됩니다. 세마포어를 사용하는 과정에는 "wait"와 "signal" 두 가지 연산이 포함됩니다. wait 연산은 세마포어의 값을 감소시키며, signal 연산은 세마포어의 값을 증가시킵니다. 세마포어의 값이 0인 경우, wait 연산을 수행하는 프로세스는 다른 프로세스가 signal 연산을 수행할 때까지 블록됩니다. 세마포어는 임계 영역(Critical Section)을 구현하는 데 사용되며, 이는 코드의 일부를 ..
[Tip] mac에서 마우스를 트랙패드 처럼 사용하기! Mac Mouse Fix 이 글에서 소개해 드릴 내용은 Mac Mouse Fix 라는 Mac에서 사용 가능한 유틸리티 소프트웨어 입니다. 이 글은 Mac Mouse Fix 2.0 버전 기준으로 작성되었습니다. 1. Mac Mouse Fix? 트랙패드에서 가능했던 스페이스간 이동, 미션 컨트롤 실행, 데스크탑 보기, 퀵 룩 실행 등을 마우스로 할 수 있게 해주는 유틸리티 부드럽고 Responsive한 스크롤 지원 Objective-C 오픈소스(https://github.com/noah-nuebling/mac-mouse-fix) 예를 들어, 다음과 같이 동작합니다. (마우스로 조작한 것 입니다!) 2. 설치 방법 https://mousefix.org/ Mac Mouse Fix - A simple way to make your mou..
인스타그램이 오직 3명의 엔지니어로 1400만 사용자를 확보한 방법 원문 https://engineercodex.substack.com/p/how-instagram-scaled-to-14-million How Instagram scaled to 14 million users with only 3 engineers Instagram's guiding principles and tech stack explained simply engineercodex.substack.com 2010/10 부터 2011/11 까지 약 1년간 0명에서 1400만명 사용자에 도달. 엔지니어는 단 3명 3가지 원칙을 따랐음 간단하게 유지할 것 (Keep things very simple.) 바퀴를 재발명하지 말 것 (Don’t re-invent the wheel.) 가능하면 입증된 견고한 기술을 ..
[Heap] 프로그래머스 level 2 더 맵게 java 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/42626 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Heap 이란? 자료구조 중 하나로, 일반적으로 우선순위 큐(Priority Queue)를 구현하기 위해 사용되는 이진 트리 구조. 힙은 일반적으로 '최소 힙(Min Heap)' 또는 '최대 힙(Max Heap)' 두 가지 종류로 나뉨 최소 힙(Min Heap)에서는 부모 노드의 값이 항상 자식 노드의 값보다 작거나 같다. 최대 힙(Max Heap)에서는 부모 노드의 값이 항상 자식 노드의 값보다..
[정렬] 프로그래머스 level 2 가장 큰 수 python, java 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/42746 처음 떠올린 생각은.. 1. 순열을 써서 가능한 모든 문자열 조합을 나열하고 2. 그걸 싹다 int로 바꿔서 sort 시켜주기 3. 다시 문자열로 바꾸기 아무리 봐도 비효율적인 것 같아서 고민해보다가 구글에 찾아봤다. 해결 흐름 1. int 배열을 모두 string으로 변환 2. 문자열에 sort를 한다. 이때 문자열에 sort를 적용하면 사전식 배열을 하게 되는데, 이는 각 문자의 ASCII 코드 값에 따라 정렬하는 방식을 의미한다. 즉, 문자열의 첫 번째 문자부터 비교하며 정렬하고, 첫 번째 문자가 동일한 경우 두 번째 문자를 비교하고, 두 번째 문자도 동일한 경우 세 번째 문자를 비교하..
무엇이 개발자를 생산적으로 만드는가 무엇이 개발자를 생산적이게 만드는가 많은 요소가 개발자 생산성에 영향을 미침 일부는 명확하고 측정하기 쉽지만, 다른 것들은 측정하기 어려워서 놓치는 경향이 있음 뭘 만들어야 하는지 알기(Knowing what to build) 잘못된 것을 빨리 만드는 것은 전혀 생산적이지 않음 고객이 뭘 요구하는지를 알고, 다른 팀들이 수용가능한 것이 무엇인지 알고(DB 테이블에 몇개의 인덱스가 가능한가, 법적으로 허용되지 않는 정보를 공유가능한가?), 이전에 시도했지만 효과가 없었던 것이 무엇인지 알아야함 더 적은 일을 하기 일을 빨리 완료 하는 것은 좋지만, 아예 "하지 않아"도 되는 것이 더 좋음 회사의 프로세스는 생산성을 떨어뜨리는 "바쁜 업무"를 추가할 수 있음 가끔은 훨씬 적은 작업으로 동일한 가치를 제공하도..