전체 글
-
재귀_하노이의 탑 알고리즘코테 준비/구현 2023. 12. 8. 22:04
hanoi(N, start, to, via): start에서 to로 via를 거쳐 총 N개의 원반을 운반할 때 hanoi(3, ‘A’, ‘C’, ‘B’): 3개의 원반을 A에서 C로 B를 거쳐 옮기는 과정 hanoi(2,'A,',B','C'): 우선 두개의 원반을 B로 옮겨놓고 3번 원반을 C로 옮겨야함 hanoi(2, ‘B’, ‘C’, ‘A’): 3번 원반을 C로 옮긴 후 B에 있는 2개의 원반을 C로 옮김 해당 알고리즘을 토대로 코드를 작성해보면 def move(n,start,to): print("{}에서 {}로 이동".format(n,start,to)) def hanoi(n,start,to,via): if n==1: move(1,start,to) else: hanoi(n-1,start,via,to)..
-
프로그래머스_안전지대 (그래프)코테 준비/DFS, BFS 2023. 12. 8. 16:33
def solution(board): cnt = 0 dx=[-1,1,0,0,-1,-1,1,1] dy=[0,0,-1,1,-1,1,-1,1] visited=[[False]*len(board[0]) for _ in range(len(board))] for x in range(len(board)): for y in range(len(board[0])): if board[x][y]==1: cnt+=1 for i in range(8): nx=x+dx[i] ny=y+dy[i] if nx=len(board[0]): continue if board[nx][ny]==0 and not visited[nx][ny]: visited[nx][ny]=True cnt+=1 return len(board)*len(board[0])-cnt
-
프로그래머스_네트워크(bfs)코테 준비/DFS, BFS 2023. 11. 18. 02:41
네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A, B, C는 모두 같은 네트워크 상에 있다고 할 수 있습니다. 컴퓨터의 개수 n, 연결에 대한 정보가 담긴 2차원 배열 computers가 매개변수로 주어질 때, 네트워크의 개수를 return 하도록 solution 함수를 작성하시오. from collections import deque def solution(n, computers): answer = 0 visited=[False]*n def bfs(start,visi..
-
프로그래머스_조건에 맞는 사용자 정보 조회하기코테 준비/SQL 2023. 11. 16. 19:51
CONCAT, SUBSTR 중요! SELECT B.USER_ID, B.NICKNAME, CONCAT(CITY,SPACE(1),STREET_ADDRESS1,SPACE(1),STREET_ADDRESS2) AS 전체주소, CONCAT(SUBSTR(TLNO,1,3),'-',SUBSTR(TLNO,4,4),'-',SUBSTR(TLNO,8,4)) AS 전화번호 FROM USED_GOODS_BOARD A JOIN USED_GOODS_USER B ON A.WRITER_ID=B.USER_ID GROUP BY B.NICKNAME HAVING COUNT(B.NICKNAME)>=3 ORDER BY USER_ID DESC
-
MobileFaceSwap (2022)CS 공부/취업준비 이론정리 2023. 11. 15. 23:37
대부분의 face swap 모델은 많은 파라미터와 계산 비용을 요구하기 때문에 real-time 어플리케이션에 적용하거나 edge device에 배포하기에는 매우 어렵다. 하지만 MobileFaceSwap은 동적 neural network 기술을 이용한 IDN을 제안한다. IDN은 한번 업데이트되면 어떠한 target 이미지와 비디오에도 적용하여 face swap을 수행할 수 있다. IDN은 오직 0.5M 파라미터와 0.33G FLOPS만을 필요로하기 때문에 real-time 비디오에 적용할 수 있다. 생성 모델인 MobileFaceSwap의 추론 방식은 다음과 같다. 우선 대상이미지가 되는 source이미지와 표적이 되는 target 이미지를 사용자에게서 입력 받으면 InsightFace라는 landm..
-
머신러닝 CS / 면접 질문 & 답변 모음CS 공부/취업준비 이론정리 2023. 11. 12. 18:00
Cross Validation은 무엇이고 어떻게 해야하나요? 더보기 교차 검증은 머신러닝 모델의 성능을 평가하기 위해 사용되는 통계적인 방법이다. 고정된 test set을 가지고 모델의 성능을 측정하게 된다면 과적합이되어 실제 데이터로 성능을 측정했을 때와 매우 다른 결과가 나올 수 있다. 따라서 교차검증을 통해 과적합을 방지한다. 교차검증은 test set을 하나로 고정하지 않고 바꾸어가며 k번의 평가를 실시한다. 이것을 k-fold cross validation이라고 한다. k번의 반복을 통해 얻은 성능 측정 값들을 평균하여 최종 모델의 성능을 평가한다. 회귀 / 분류시 알맞은 metric은 무엇일까요? 더보기 회귀: RSS, MSE, MAE 등 분류: Accuracy, Precision, Recal..
-
Object Detection (재활용품)CS 공부/취업준비 이론정리 2023. 11. 12. 00:22
1. MMDetection이란? 활용방법은? Pytorch 기반의 Object Detection 오픈소스 라이브러리입니다. 전체 프레임워크를 모듈 단위로 분리해 관리할 수 있다는 것이 가장 큰 특징입니다. - 1 stage 모델의 경우 Backbone / Neck / DenseHead 모듈 - 2 stage 모델의 경우 여기에 RoIHead 모듈을 추가, 총 4개의 모듈로 구분됩니다. Faster R-CNN, Cascade R-CNN, RetinaNet, YOLOv3 등의 다양한 객체 탐지 알고리즘을 지원합니다. 더 자세한 설명은 https://imsmile2000.tistory.com/185 2. UniverseNet은 무엇? 왜 사용하게 됐는지, 장점은? 객체 탐지를 위한 최신 딥러닝 모델 중 하나로..
-
Mask ClassificationCS 공부/취업준비 이론정리 2023. 11. 7. 02:28
1. Resnet34, Efficientnetb3보다 VGG19가 성능이 더 안 좋은 이유는? VGGNet의 FC Layer의 parameter 개수를 보면 하나의 layer에서 약 1억개에 육박하는 굉장히 많은 파라미터를 가지고 있다. 이 때문에 굉장히 비효율적인 training이 이루어지며 overfitting이 발생하기 쉽습니다. 반면에 ResNet34는 Residual Connection을 통해 깊은 네트워크에서 발생하는 훈련 문제를 완화하며 EfficientNetB3는 더 적은 파라미터와 연산량으로도 성능을 향상시킵니다. (Compound Scaling 방법을 사용해 width, depth, resolution을 동시에 조정) 2. Efficientnetb0~b7 나누는 기준, 무슨 차이점이 있..