- Computer Vision
- Domain Adaptation
- CodeUp6016
- 백준
- transformer
- Pseudo Label
- Maximum Mean Discrepancy
- Semi Supervised Learning
- CodeUp6015
- Vision Transformer
- CodeUp
- CodeUp6013
- Segmentation Map
- CodeUp6014
- CodeUp6011
- ICLR2021
- Feature Augmentation
- 비전공자를 위한 HTML/CSS
- Consistency Regularization
- Attention
- Class Aware Sampling
- ViT
- CodeUp6012
- Baekjoon
- Contrastive Domain Discrepancy
- Python
- 이것이 취업을 위한 코딩테스트다
- CVPR2021
- 코드업
- ComputerVision
목록전체 글 (38)
IT 정리용 블로그!
유기견, 실종견 견종파악에 도움이 되고자 시작했던 프로젝트입니다. 미흡한 부분이 많지만 제작한 모델을 업로드합니다. 캐글의 견종분류 competition 데이터셋을 기반으로 견종 분류 모델을 제작했습니다. 견종 120종에 대한 Training data 8177장을 활용해 제작한 모델이며, 클래스 당 약 68장의 적은 데이터셋을 가지고 있기에, 이를 해결하는데 집중했습니다. 또한, 구분이 어려운 유사 견종들에 대해 추가적인 분류를 시행해 정확도를 높이도록 제작했습니다.

HTML이란 HTML(Hyper Text Markup Language)로, 웹페이지를 만드는 언어이다. Hyper Text는 단순한 텍스트를 넘어, 웹페이지의 특정 부분과 연결할 수 있는 기능을 가진 텍스트(링크)를 의미한다. Markup Language는 프로그래밍 언어의 한 종류로, 정보를 구조적, 계층적으로 표현 가능하다는 특징을 가진다. HTML의 문법은 크게 태그, 속성, 중첩, 빈 태그, 공백, 주석으로 나누어 설명할 수 있다. 태그(Tag) 한글은 자음과 모음이 모여 하나의 단어와 문장을 만들어 내는 것 처럼, HTML도 각 태그들이 모여 하나의 요소를 만들고, HTML 문서를 만든다. 우리가 태그를 이용해 코드를 작성하면, 브라우저는 이를 인식해 내용을 표현한다. 태그는 기호로 표현하며, ..

[7-1] Q : 순차 탐색(Sequential Search)을 구현해라. A :순차 탐색은 리스트 안에 있는 특정 데이터를 찾기 위해 앞에서부터 데이터를 하나씩 확인하는 방법이다. 순차 탐색은 데이터의 개수가 N개일 때 최대 N번의 비교 연산이 필요하므로 최악의 경우 시간 복잡도는 O(N)이다. Line 4에서 list의 인덱스는 0부터 시작하기에 몇 번째 원소인지를 알려주기 위해 1을 더해 리턴한다. [7-2] Q : 재귀 함수를 이용해 이진 탐색(Binary Search)을 구현해라. A :이진 탐색은 배열 내부의 데이터가 정렬되어 있어야만 사용 가능하다. 시작점, 끝점을 기준으로 가운데에 있는 중간점을 잡는다. 중간점이 실수일 때는 소수점 이하를 버려 정수로 만든다(line 5). 중간점의 원소(..

[6-1] Q : 선택 정렬(Selection Sort)을 구현해라. A :선택 정렬은 array의 모든 원소들 중 가장 작은 것을 index 0으로 보내고, index가 1보다 큰 것들 중 가장 작은 값을 index 1로 보낸다. 그 뒤 index 2에도 마찬가지로 실행한다. 가장 작은 데이터를 앞으로 보내는 과정을 N번 반복하는 것이다. 선택 정렬은 N + N-1 + N-2 + ... 2번 연산을 진행하는데, 근사치로 N(N-1)/2번 연산을 실행하므로 O(N^2)회 연산을 수행한다. 때문에 알고리즘 문제풀이에 사용하기에는 느린 편이다. Line 8에서 파이썬의 swap이 나타난다. 다른 언어들과 달리, 파이썬에서는 line 8처럼 쓰면 두 값이 바뀐다. [6-2] Q : 삽입 정렬(Insertion..

[5-1] Q : 스택을 구현해라. A :stack은 별도의 라이브러리를 이용할 필요 없이 list에 append()와 pop() 함수를 이용해 구현한다. line 7과 10에서는 직전에 append된 7과 4가 출력되는 last in first out(first in last out) 특징을 확인할 수 있다. [5-2] Q : 큐를 구현해라. A :파이썬에서 큐는 collection 모듈의 deque 자료구조를 사용한다. Deque(Double Ended Queue)는 양 끝에서 삽입과 삭제를 할 수 있어야 하므로 양방향 연결리스트(dobuly linked list)로 구현되어 있다. 오른쪽에 삽입할 때는 append(), 왼쪽에 삽입할 때에는 appendleft(), 중간에 삽입할 때에는 insert..

[4-1] Q : 1x1 크기의 정사각형 블록으로 이루어진 NxN 크기의 지도가 있다. 가장 왼쪽 위 좌표는 (1,1)이며, 가장 오른쪽 아래 좌표는 (N,N)에 해당한다. 여행가가 지도 위를 여행하는데, 시작 좌표는 항상 (1,1)이다. 여행가가 이동할 계획서가 있다. 하나의 줄에 띄어쓰기를 하여 L,R,U,D의 문자들이 적혀 있다. 여행가가 NxN 크기의 지도를 벗어나려는 움직임은 무시된다. 첫 줄에는 N이 주어지고, 둘째 줄에는 A가 이동할 계획서의 내용이 주어진다. 여행가가 최종적으로 도착할 지점의 좌표를 공백으로 구분해 출력해라. A :사실 line 2에서 move_를 list 형태로 만들 필요 없이 input().split()만 해주면 알아서 move_에 list 형태로 들어간다. str 형태..

[3-1] Q : 카운터에는 거스름돈으로 사용할 500원, 100원, 50원, 10원짜리 동전이 무한히 존재한다. 거슬러줘야 할 돈이 N원일 때 거슬러 줘야 할 동전의 최소 개수를 구해라. A : 동전의 수를 가장 적게 주려면 가장 큰 화폐단위(500원)부터 거슬러 주면 된다. 여기서 그리디 알고리즘이 사용된다. 그리디 알고리즘은 항상 최적의 해를 보장하지 않는다. 따라서 그리디 알고리즘으로 문제를 풀었을 경우에는 그 풀이가 정당한지 확인해야 한다. 이 문제의 경우에는 가지고 있는 동전 중 큰 단위의 동전은 항상 더 작은 단위의 배수이기 때문이다. 때문에, 항상 10원짜리 30개, 50원짜리 6개를 주는 것보다 100원짜리 3개를 주는 것이 낫다. 위 코드의 경우, 동전의 수가 K라면 시간복잡도는 O(K..

[2798] Q : 변형된 블랙잭을 한다. 각 카드에는 양의 정수가 쓰여있다. 딜러는 N장의 카드를 모두 숫자가 보이도록 바닥에 놓는다. 그리고 딜러는 숫자 M을 말한다. 플레이어는 제한된 시간 안에 N장의 카드 중 3장의 카드를 골라야 한다. 플레이어가 고른 카드의 합은 M을 넘지 않으면서 M과 최대한 가깝게 만들어야 한다. 첫 줄에는 N과 M이 공백을 두고 입력된다. 둘째 줄에는 카드에 쓰여 있는 수들이 주어진다. 첫 줄에 M을 넘지 않으면서 M에 최대한 가까운 카드 3장의 합을 출력해라. A :Brute force는 '무식한 힘'이라는 뜻이다. 가능한 모든 경우를 탐색하는 알고리즘으로 생각할 수 있다. [2231] Q : 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자..