본문 바로가기

전체 글89

[Hash] 폰켓몬 문제: https://school.programmers.co.kr/learn/courses/30/lessons/1845 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr입출력 예numsresult[3,1,2,3]2[3,3,3,2,2,4]3[3,3,3,2,2,2]2 풀이set()을 통해 중복 값을 제거한다.예제 1)nums는 {1,2,3}이 된다.중복값을 제거한 nums의 길이는 3이다.nums/2 만큼 뽑는다. (= 2마리 뽑는다.)2마리를 뽑아야 하는데 중복값을 제거한 길이, 즉 3마리가 존재하므로 가장 많은 종류의 폰켓몬을 뽑을 수 있는 경우의 수는 2이다... 2024. 6. 12.
[Hash] 완주하지 못한 선수 문제: https://school.programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr코드 1participant=['leo','kiki','eden']completion=['eden','kiki']ps = 0cs = 0dic = {}for p in participant: dic[hash(p)] = p # ['leo','kiki','eden']의 hash값을 key로 가짐 print(p) ps += hash(p) # participant의 hash값 다 .. 2024. 6. 12.
Hash 개념 해시는 데이터를 다루는 기법 중의 하나로, 검색과 저장을 아주 빠르게하는 자료구조이다.데이터를 저장할 때 Key-Value 형태로 데이터가 존재하고, Key값이 배열의 인덱스로 저장되기 때문에 검색과 저장이 빠르게 일어나게 된다.해시 함수는 key값을 고정된 길이의 hash로 변환하는 역할을 한다.해시 함수에서 hashing을 통해 해시값으로 변경하며, 이 해시값이 저장 위치가 된다고 생각하면 된다.서로 다른 key가 같은 해시가 되는 경우를 해시 충돌이라고 하며, 이 충돌의 확률을 최대한 줄이는 함수를 만드는 것이 중요하다.장점단점중복을 제거할 수 있다.데이터 캐싱, 보안에 주로 사용된다.배열의 인덱스로 접근하기 때문에 삽입, 삭제 등의 연산이 빠르다.공간 복잡도가 커진다.충돌이 발생할 수 있다.충돌이.. 2024. 6. 12.
움직이는 배경에서 작은 객체 분류 Paper & PosterKCC(한국정보과학회)에서 개최한 논문 경진대회에 제출하기 위한 프로젝트이다.작은 객체를 인식하기 위해 단순한 object detection task가 아닌 시간 정보를 이용한 video classification 모델의 구조를 이용하였다. 기본 base가 되는 모델로는 X3D 모델을 사용하였다. 이 모델은 원본 영상을 프레임 단위로 나눈 이후에 새롭게 여러 개의 클립을 생성하여 시간정보를 포함하여 학습을 진행한다. 작은 객체의 존재 여부를 파악하기 위해 프레임 단위로 객체가 존재하면 라벨을 1, 부재인 경우에는 0으로 라벨링하였다.그러나, 실험을 진행하기에 앞서 데이터셋 자체가 라벨이 0인 영상은 객체가 없는 단순히 배경만 존재하는 클립이기에 절대적인 양이 부족하였다. 그렇기에.. 2024. 5. 29.
ChatGPT, DALLE2 API를 활용하여 인공지능 카카오톡 챗봇 만들기 카카오 챗봇에서 ChatGPT와 DALLE2를 API를 통해 사용할 수 있도록 했다.1. 카카오채널 세팅(1) 카카오 비즈니스 홈페이지로 이동- https://business.kakao.com/ (2) 오른쪽 상단의 '내 비즈니스' 클릭 (3) 왼쪽 상단의 '채널' 클릭 (4) '새 채널 만들기' 클릭- 일반 채널로 개설 - 생성한 채널로 들어간 후, 오른쪽 하단의 '채널 공개'와 '검색 허용'을 on으로 변경- 왼쪽 상단의 채널의 '챗봇'을 클릭- '봇 만들기' 클릭- '카카오 챗봇' 클릭- 챗봇 생성2. 기능 구현(1) Import Moduleimport jsonimport openaiimport threadingimport timeimport queue as qimport osfrom transla.. 2024. 5. 27.
[논문 리뷰] DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs (2017) Paper: https://arxiv.org/pdf/1606.00915Abstract본 논문에서는 딥러닝을 사용하여 semantic segmentation task를 다루고 크게 세 가지 기능을 제시한다.1. upsampling된 필터와 함께 convolution을 강조하며, 이를 확장된 컨볼루션(Atrous Convolution = Dilated Convolution)이라고 한다.2. 다중 스케일에서 물체를 견고하게 분할하기 위해 확장된 공간 피라미드 풀링(ASPP)을 제안한다.3. DCNNs(Deep Convolutional Neural Networks)와 확률적 그래픽 모델의 방법을 결합하여 객체 경계의 위치를 개선한다. Atrous Convolution은 밀집 예측 작업에서 강력한 도구로 작용한다.. 2024. 5. 19.