일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 큐
- 3D
- Object Detection
- OpenCV
- center loss
- Object Tracking
- Threshold
- 프로그래머스
- 자료구조
- NLP
- cv2
- numpy
- transformer
- attention
- level2
- point cloud
- 논문 구현
- flame
- reconstruction
- 파이썬
- Deeplearning
- Computer Vision
- Knowledge Distillation
- Python
- re-identification
- 스택
- deep learning
- 알고리즘
- 임계처리
- 딥러닝
- Today
- Total
목록전체 글 (50)
공돌이 공룡의 서재
1. 이미지 저장형식 컬러 이미지로는 RGB, BGR, HSV 등이 있고 흑백으로는 Grayscale 형태가 주로 쓰인다. 이미지를 불러오면 전자의 경우 3차원 행렬, 후자의 경우 2차원 행렬이다. 각 저장형식에 따른 설명은 다음과 같다. RGB: 빛의 3원소 (Red/Green/Blue)를 0~255 에 해당하는 값으로 저장한다. 빛은 겹칠수록 흰색에 가까워지기 때문에, (255, 255, 255) 에 가까워질수록 흰색, (0, 0, 0)에 가까워질수록 검정색이다. BGR: openCV에서는 처음 이미지를 불러오면 BGR형태로 불러온다. 순서가 RGB와 반대 HSV: Hue(색상), Saturation(채도), Value(명도) 의 형태로 이미지를 나타낸다. 특정 색상을 정하기 좋다. Grayscale..
※ lambda 사용 X def solution(strings, n): # Dictionary 이용 answer = [] box = {} #1 for i in range(len(strings)): box[strings[i][n]] = [] #2 for i in range(len(strings)): box[strings[i][n]].append(strings[i]) box[strings[i][n]] = sorted(box[strings[i][n]]) #3 criterion = sorted(list(box.keys())) for i in range(len(criterion)): for j in range(len(box[criterion[i]])): answer.append(box[criterion[i]][j..
def solution(arr): answer = [arr[0]] for i in range(1, len(arr)): if arr[i] == arr[i-1]: pass else: answer.append(arr[i]) return answer 코드 설명: 처음 숫자는 그 다음 숫자랑 중복이 되든 안되든 무조건 하나를 취하고, 그 다음부터는 배열의 원소를 2개씩 비교하면서 같으면 pass (continue를 써도 무방), 다르면 숫자가 달라지는 것이니 answer 배열에 넣었다.
def solution(array, commands): answer = [] for i in range(len(commands)): temp = array[commands[i][0]-1:(commands[i][1])] temp = sorted(temp) answer.append(temp[commands[i][2]-1]) return answer 코드 설명: 정렬 알고리즘을 물어보나 싶었는데 효율성 테스트가 없는 것을 보아하니 그런 문제는 아니고 문제 조건을 잘 이해하고 있는지, List에 대해 잘 이해하고 있는지를 물어보는듯하다. List의 slice와 sorted() 함수를 이용하면 쉽게 풀 수 있다. 다만 index와 문제 조건의 '번째'는 1씩 차이가 나니 주의해야 한다. +@: 주어진 리스트들의 ..
def solution(n, lost, reserve): give = reserve.copy() for i in range(len(reserve)): if reserve[i] in lost: lost.remove(reserve[i]) give.remove(reserve[i]) check = lost.copy() reserve = give for i in range(len(reserve)): if reserve[i] - 1 in check: if len(check) != 0: check.remove(reserve[i]-1) elif reserve[i] + 1 in check: if len(check) != 0: check.remove(reserve[i]+1) else: pass return n - len(..
같은 작업을 하는 코드여도 어떤 알고리즘을 사용했는지에 따라 실행 시간과 사용하는 메모리 공간이 달라진다. 실행 시간이 짧고 메모리 공간을 절약하는 코드가 효율적인 코드라 볼 수 있을 것이다. 1부터 n까지 더한 값을 return하는 코드들의 비교로 감을 잡아보자. def sum1(n): sum = 0 for i in range(n): sum += (i+1) return sum 위의 코드는 for문을 함수인자 n의 값만큼 실행한다. 1부터 100까지 더한다고 치면 100번 덧셈 연산을 수행한다. def sum2(n): return (n+1)*n/2 위의 코드는 등차급수의 합(점화식) 공식을 이용한 코드인데 곱셈과 나누기를 한번씩 하고 바로 값을 return한다. n이 작다면 실행시간이 거의 차이나지 않는..
def solution(answers): solver = [0, 0, 0] s1 = [1, 2, 3, 4, 5] s2 = [2, 1, 2, 3, 2, 4, 2, 5] s3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5] for i in range(len(answers)): if answers[i] == s1[i % len(s1)]: solver[0] += 1 if answers[i] == s2[i % len(s2)]: solver[1] += 1 if answers[i] == s3[i % len(s3)]: solver[2] += 1 answer = [] for i in range(len(solver)): if solver[i] == max(solver): answer.append(i + 1) r..