일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- cv2
- deep learning
- 딥러닝
- 알고리즘
- point cloud
- 스택
- Computer Vision
- 임계처리
- Deeplearning
- flame
- Object Tracking
- Knowledge Distillation
- OpenCV
- re-identification
- center loss
- numpy
- NLP
- Object Detection
- 논문 구현
- level2
- reconstruction
- 파이썬
- 큐
- Threshold
- attention
- 프로그래머스
- 3D
- transformer
- 자료구조
- Python
- Today
- Total
목록코딩 (21)
공돌이 공룡의 서재
※ 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..
해시(Hash) 구조: 어떤 값을 찾고자 할 때 쓰고 고유한 key와 그 key에 해당하는 값이 저장되는 구조다. Big-O로는 O(1) 에 해당한다. 파이썬에서는 dictionary로 이를 구현할 수 있다. def solution(participant, completion): runners = {} for runner in participant:# 이름(key) - 동명이인 수(value) dictionary if runner not in runners: runners[runner] = 1 else: runners[runner] += 1 for runner in completion: runners[runner] += -1 if runners[runner] == 0: del runners[runner] ..