일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- backward
- CBOW
- sort
- Heap
- 신경망
- Sigmoid
- stak
- 딥러닝
- 자연어처리
- select
- PPMI
- 파이썬
- Word2vec
- que
- Stack
- affine
- kakao
- Programmers
- Numpy
- Python
- boj
- MySQL
- FullyConnectedLayer
- dl
- skip-gram
- algorithm
- 프로그래머스
- SQL
- DeepLearning
- hash
- Today
- Total
목록Algorithm/Programmers (21)
혜온의 이것저것
문제 이해 및 풀이 우선 프린터의 우선순위 중에서 내가 원하는 프린트물이 언제 프린트 되는 지 확인해야하기 때문에 우선순위와 함께 움직일 인덱스 배열 num_idx를 만들어주었다. 우선순위가 제일 높은 값을 먼저 프린트해 줄 것이기 때문에 가장 높은 우선순위 값을 max로 구하여 max_num이라는 변수에 저장해두었다. 이후 priorities의 첫번째 값을 확인하여 max_num가 같다면 우선순위가 제일 높은 값이므로 priorities에서 제거해주고 해당하는 인덱스 값도 pop(0)해주고, 프린트 하나가 진행되었다는 표시로 answer값을 1씩 증가시켜준다. 이 때 num_idx의 값을 확인하여 내가 원하는 location값이면 answer를 return해준다. 만약 max_num이 아니라면 대기목록..
문제 이해 및 풀이 짝을 맞춰서 진행해야한다. 괄호는 (로 시작해서 )로 끝난다. (가 들어오면 stack에 넣어주고 )가 들어오면 맞는 짝을 찾아 제거해줄 것이다. (가 들어왔을 때 stack에서 하나씩 pop을 해줘서 한바퀴 다 돌았을 때 stack에 남아 있는 것이 없다면 모두 올바르게 짝지어진 것이다. 하지만 )가 처음으로 들어온 경우에는 false를, stack에 무언가 남아 있는 경우는 짝이 올바르게 지어지지 않았기 때문에 false를 출력해준다. 전체 코드 def solution(s): stack=[] for c in s: if c=='(': stack.append(c) if c==')': if len(stack)>0: stack.pop() else: return False if len(st..
문제 이해 및 풀이 작업 진도와 순서를 더해주면서 100이 넘는지 순서대로 확인해주었다. 첫번째 작업이 100이 넘는다면 제거해주고 cnt는 1씩 증가시켰다. 첫번째 작업이 진행 중 일때 다음 작업은 이미 끝났을 수도 있기 때문에 그 다음 작업들도 함께 검사해준다. 모든 작업물이 다 제거될 때 까지 반복해주고, cnt의 값이 0이상이면 배포되는 작업물이 있는 것이므로 answer에 추가해주었다. 최종코드 def solution(progresses,speeds): answer=[] while len(progresses)>0: cnt=0 for i in range(len(progresses)): progresses[i]+=speeds[i] for i in range(len(progresses)): if pr..
문제 이해 및 풀이 연속으로 같은 숫자가 나오는지 파악해줘야한다. 우선 첫번째 값을 리스트에 넣어준 뒤 for문을 돌면서 숫자가 리스트의 제일 마지막 숫자와 같다면 같은 수 이므로 패스하고 다른 숫자인 경우에는 리스트에 넣어주는 작업을 반복한다. 최종 코드 def solution(arr): answer=[] answer.append(arr[0]) for num in arr[1:]: if num!=answer[-1]: answer.append(num) return answer 문제출처 프로그래머스 코딩테스트 고득점 kit https://school.programmers.co.kr/learn/courses/30/lessons/12906 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그..
문제 이해 및 설명 우선 장르끼리 나눠서 확인하기 위해 딕셔너리를 사용해주었다. 이때, 출력을 할때 고유번호를 출력하기 때문에 고유번호도 함께 저장하여주었다. 이후 장르끼리 순위를 매기기 위해 위에서 만든 딕셔너리에서 for문을 돌면서 재생횟수를 더하여주었다. 그 다음 장르 안에서 순위를 매기기 위해 한 장르씩 돌아가면서 재생횟수와 고유번호에 맞게 정렬해주었다. 이때 각 장르당 2개씩만 고유번호를 answer 리스트에 추가해주었다. 최종 코드 def solution(genres,plays): answer=[] cnt={} for i in range(len(genres)): if genres[i] in cnt: cnt[genres[i]].append([plays[i],i]) else: cnt[genres[..