전체 글
-
[review] YOLOV1 (2015)deep learning/paper review 2024. 2. 19. 12:09
You Only Look Once : Unified, Real-Time Object Detection 논문 링크 : [1506.02640] You Only Look Once: Unified, Real-Time Object Detection (arxiv.org) Abstract YOLOv1은 object detection을 regression의 관점에서 접근한다. (bounding box의 존재, class probability) (이전의 object detection 연구는 classifier가 detection을 수행하는 방식으로 작업) 단일 신경망 구조를 갖고 있으며, 전체 데이터에 대한 한번의 연산을 통해 bounding box와 class probabilities를 predict하는 모델로, en..
-
이진 변환 반복하기python algorithm 2024. 2. 18. 19:22
0과 1로 이루어진 어떤 문자열 x에 대한 이진 변환을 다음과 같이 정의합니다. x의 모든 0을 제거합니다. x의 길이를 c라고 하면, x를 "c를 2진법으로 표현한 문자열"로 바꿉니다. 예를 들어, x = "0111010"이라면, x에 이진 변환을 가하면 x = "0111010" -> "1111" -> "100" 이 됩니다. [문제] 0과 1로 이루어진 문자열 s가 매개변수로 주어집니다. s가 "1"이 될 때까지 계속해서 s에 이진 변환을 가했을 때, 이진 변환의 횟수와 변환 과정에서 제거된 모든 0의 개수를 각각 배열에 담아 return 하도록 solution 함수를 완성해주세요. [제한사항] s의 길이는 1 이상 150,000 이하입니다. s에는 '1'이 최소 하나 이상 포함되어 있습니다. [풀이]..
-
캐시 크기에 따른 실행 시간 측정python algorithm 2024. 2. 18. 00:02
2018 KAKAO BLIND RECRUITMENT 지도개발팀에서 근무하는 제이지는 지도에서 도시 이름을 검색하면 해당 도시와 관련된 맛집 게시물들을 데이터베이스에서 읽어 보여주는 서비스를 개발하고 있다. 이 프로그램의 테스팅 업무를 담당하고 있는 어피치는 서비스를 오픈하기 전 각 로직에 대한 성능 측정을 수행하였는데, 제이지가 작성한 부분 중 데이터베이스에서 게시물을 가져오는 부분의 실행시간이 너무 오래 걸린다는 것을 알게 되었다. 어피치는 제이지에게 해당 로직을 개선하라고 닦달하기 시작하였고, 제이지는 DB 캐시를 적용하여 성능 개선을 시도하고 있지만 캐시 크기를 얼마로 해야 효율적인지 몰라 난감한 상황이다. [문제] 어피치에게 시달리는 제이지를 도와, DB 캐시를 적용할 때 캐시 크기에 따른 실행시..
-
Python 기본 Method 및 함수 정리python algorithm 2024. 2. 17. 21:30
1. 리스트 요소 추가 # .insert() : 특정 위치에 특정 element 추가 a = [1, 2, 3] a.insert(1, 10) # index = 1에 10 추가 print(a) # [1, 10, 2, 3] # .append() : 리스트 마지막에 한 개의 element 추가 a = [1, 2, 3] a.append(10) # 마지막 index에 10 추가 print(a) # [1, 2, 3, 10] # .extend() : 리스트 마지막에 sequential elements 추가 a = [1, 2, 3] add_list = ['a', 'b', 'c'] a.extend(add_list) # 마지막 index에 add_list elements 추가 print(a) # [1, 2, 3, 'a', ..
-
다트 게임python algorithm 2024. 2. 16. 14:59
2018 KAKAO BLIND RECRUITMENT 카카오톡 게임별의 하반기 신규 서비스로 다트 게임을 출시하기로 했다. 다트 게임은 다트판에 다트를 세 차례 던져 그 점수의 합계로 실력을 겨루는 게임으로, 모두가 간단히 즐길 수 있다. 갓 입사한 무지는 코딩 실력을 인정받아 게임의 핵심 부분인 점수 계산 로직을 맡게 되었다. 다트 게임의 점수 계산 로직은 아래와 같다. 다트 게임은 총 3번의 기회로 구성된다. 각 기회마다 얻을 수 있는 점수는 0점에서 10점까지이다. 점수와 함께 Single(S), Double(D), Triple(T) 영역이 존재하고 각 영역 당첨 시 점수에서 1제곱, 2제곱, 3제곱 (점수1 , 점수2 , 점수3 )으로 계산된다. 옵션으로 스타상(*) , 아차상(#)이 존재하며 스타..
-
실패율python algorithm 2024. 2. 14. 14:51
2019 KAKAO BLIND RECURITMENT 문제 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다. [문제] 이 문제를 어떻게 할까 고민 한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대부분의 로직은 쉽게 구현했지만, 실패율을 구하는 부분에서 위기에 빠지고 말았다. 오렐리를 위해 실패율을 구하는 코드를 완성하라. 실패율은 다음과 같이 정의한다. 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수 전체 스테이지의 개수 N, 게임을 이용하는 사용자가 현재 멈..
-
[review] GoogLeNet (2014)deep learning/paper review 2024. 2. 13. 21:06
Going deeper with convolutions 논문을 Review 해보려고 한다. Abstract Inception이라는 codename의 deep convolution neural network는 classficiation과 detection 모델로서 제안되었다. 주 특징은 네트워크 내부의 computing reosource들을 향상된 방식으로 활용하는 것으로, computational budget을 변화시키지 않으면서 깊이와 너비를 확장시키는 방법으로 달성되었다. Architecture는 Hebbian Principle과 multi-scale processing의 아이디어가 적용되었다. Hebbian Principle? - 뉴런 간의 연결 강도가 동시에 활성화되는 경우 강화된다는 학습 원칙으..
-
신규 아이디 추천python algorithm 2024. 2. 13. 15:03
2021 KAKAO BLIND RECRUITMENT 문제 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 가입하는 유저들이 카카오 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천해주는 프로그램을 개발하는 것입니다. 다음은 카카오 아이디의 규칙입니다. 1. 아이디의 길이는 3자 이상 15자 이하여야 합니다. 2. 아이디는 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.) 문자만 사용할 수 있습니다. 3. 단, 마침표(.)는 처음과 끝에 사용할 수 없으며 또한 연속으로 사용할 수 없습니다. "네오"는 다음과 같..