일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 프로그래머스
- affine
- PPMI
- Numpy
- hash
- backward
- 딥러닝
- 자연어처리
- Programmers
- select
- MySQL
- skip-gram
- 파이썬
- stak
- CBOW
- FullyConnectedLayer
- Sigmoid
- Word2vec
- Python
- sort
- DeepLearning
- dl
- Stack
- que
- SQL
- Heap
- kakao
- 신경망
- algorithm
- boj
- Today
- Total
목록Algorithm/Programmers (21)
혜온의 이것저것
[문제 이해 및 풀이] 응답완료 시간과 처리시간이 한번에 들어오기 때문에 우선 둘을 endtime과 gap으로 분리시켜 주었다. 이와 동시에 datetime의 timedelta를 사용해서 시작하는 시간도 함께 계산해주었다. 이렇게 lines을 한 바퀴 돌면서 start에는 시작시간을, end에는 응답완료시간을 저장해두었다. 1초동안 얼마나 많은 작업이 처리되고 있는 지 파악해 줘야 하기 때문에 하나의 end와 여러개의 start를 비교해주기 위해 이중for문을 사용하였다. end[i]와 start[j]의 시간차이가 1초보다 작은 경우에는 같은 1초대에서 실행되고 있다고 할 수 있으므로 cnt를 하나씩 증가시켜 주었고, 각 end[i]를 기준으로 1초의 시간대가 바뀌기 때문에 max를 통해서 최대값을 구해..
[문제 이해 및 풀이] board의 문자열들을 문자 하나씩 나눠야 하나씩 수정할 수 있기 때문에 문자열들을 한글자씩 나눠주었다. 이 문제에서는 같은 과정이 계속 반복되기 때문에 while문 안에 코드를 넣어 풀어주었다. for문을 돌면서 4블록이 만들어지는게 확인되면 check하기 위해서 만든 array배열에서 그 위치에 해당하는 값을 1로 바꾸어 주었다. for문을 다 돌면 array의 합을 계산하여 새롭게 4블록이 생긴 것이 있는지 확인해주었다. 이 때, 만약 새로운 4블록이 만들어지지 않았다면 더 이상 게임이 진행되지 않기 때문에 while문을 빠져나가도록 해주었다. 4블록이 만들어지면 그 블록을 지우고 빈 공간을 채워야 하다. 이번에는 거꾸로 for문을 돌면서 array의 값이 1이면 4블록에 해..
[문제 이해 및 풀이] 숫자로 표현되는 점수와 문자로 표현되는 보너스와 옵션들로 dartResult가 구성되어 있다. dartResult에서 정규식을 사용하여 숫자들만 num list에 저장해두었다. 그 후 dartResult를 for문으로 하나씩 접근하여 해당하는 문자에 해당하는 계산을 해주었다. 이 때, idx를 활용하여 보너스와 옵션에 해당하는 점수가 계산되도록 해주었다. [나의 코드] import re def solution(dartResult): idx=0 num=re.findall('\d+',dartResult) num=list(map(int,num)) for i in dartResult: if i.isdigit()==False: if i=="S": idx+=1 elif i=="D": num[..
[문제 이해 및 풀이] 먼저 주어진 찍는 방식에서 반복되는 규칙을 찾아 lst에 저장해둔다. 이 리스트들은 어떤 답이 주어지더라도 같은 결과이고, anwers의 경우만 길이와 내용이 달라지므로 answers를 기준으로 for문을 돌렸다. lst의 길이가 각자 다르고, answers의 길이와도 다르기 때문에 맞는지 비교하기 위해서 i%len(lst)를 사용하여 idx가 반복되도록 설정해주었다. 가장 많이 맞춘 사람의 번호를 return해줘야 하기 때문에 max를 사용해서 맞춘 개수의 최대값을 뽑아주고, 그 최대값과 같은 값을 가지고 있는 번호를 answer 리스트에 append해줬다. 이때 enumerate를 사용하여주었다. [나의 코드] def solution(answers): answer=[] lst1..
[문제 이해 및 풀이] h의 최대값을 뽑는 과정이기 때문에 h가 가질 수 있는 가장 큰 값인 citations의 길이 n 부터 시작했다. 리스트 안에 있는 숫자가 n보다 크거나 같으면 cnt의 값을 1씩 늘려주었다. 리스트를 한 번 돌고 나오면 n번 이상 인용된 논문의 수(cnt)가 나온다. 이때 cnt의 값이 n보다 크거나 같다면, 즉 n편 이상이라면 그 값이 H-index가 된다. 만약 cnt의 값이 n보다 작다고 한다면 n의 숫자를 1씩 줄여나가면서 가장 큰 n값을 찾는다. 이에 해당하는 값이 없다면 (n==0) 최소값인 0을 return해준다. 예제를 들어 생각하면 이해하기가 더 쉽다. 더보기 더보기 [3,1,1,4] 인 경우 n=4) 1개(4) n=3) 2개(3,4) n=2) 2개(3,4) ->..