일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Vision
- 컴퓨터 비전
- 딥러닝
- Computer Vision
- 신경망
- Support Vector Machine
- 머신러닝
- C++
- neural network
- 추천 시스템
- Kaggle
- 그래픽스
- pre-trained
- CNN
- Regularization
- cs231n
- Unsupervised learning
- CPP
- 로지스틱 회귀
- 인공지능
- 백준
- SVM
- 파이썬
- SGD
- recommender system
- 컴퓨터 그래픽스
- logistic regression
- petal to metal
- OpenGL
- 비용함수
- Today
- Total
목록Algorithm/python (26)
kwan's note
난이도: 실버1 번호: 7576번 처음에는 매번 모든 행과열의 데이터를 확인해서 1이면 확장하는 방식으로 만들었는데 시간초과가 발생했다. 초기작성코드(시간초과) from sys import stdin from copy import deepcopy def tomato(): day = 0 prev= [0] while( any(0 in tomatobox[i] for i in range(M)) and prev != tomatobox): prev = deepcopy(tomatobox) q=[] for m in range(M): for n in range(N): if tomatobox[m][n]== 1: if m < M - 1 and tomatobox[m + 1][n] == 0: q.append([m+1,n]) i..
난이도: 실버2 번호:9633번 그래프의 DFS BFS탐색에 관한 문제이다. DFS와 BFS의 정의를 알고 구현할 수 있으면 쉽게 풀 수 있는데 bfs를 처음 풀어봐서 왜 queue를 이용해야 하는지 몰라서 오래걸렸다. from sys import stdin import time as t s=t.time() def dfs(node): print(node, end=' ') visitdfs[node] = 1 for i in range(1,N+1): if visitdfs[i] == 0 and matrixmap[node][i] == 1: dfs(i) def bfs(node): tovisit =[node] visitbfs[node]=1 while tovisit: node=tovisit[0] print(tovisi..
난이도: 골드5 번호:9633번 백트래킹문제로 python3는 시간을 만족시키지 못해 pypy3로 제출하여 통과하였다. row를 기준으로 한줄씩 내려가면서 모든 column에 숫자를 넣을 수 있는지 체크하면서 풀어내려갔다. from sys import stdin def queendfs(row): global count if (row==N): count +=1 return for j in range(N): checkpoint = True for n in range(len(queenlist)): if queenlist[n][1] == j or abs(queenlist[n][0] - row) - abs(queenlist[n][1] - j) == 0: checkpoint=False break if checkpo..
문제번호:15651 난이도: 실버3 간단한 dfs 백트래킹 문제이다. 1번의 쉬운버전(check 필요 없음)이다. checklist를 제거하고 동일하게 작성하였다 from sys import stdin def dfs(cnt): if(cnt==M): print(*answer) return for i in range(N): checklist[i]=True answer.append(numlist[i]) dfs(cnt+1) answer.pop() if __name__ == '__main__': N,M= map(int,stdin.readline().split()) numlist = [i+1 for i in range(N)] answer=[] dfs(0)
문제번호:15650 난이도: 실버3 기존 1번문제에서 reminder-by-kwan.tistory.com/47 길이가 이전숫자보다 새로 들어오는 숫자가 커야한다는 조건을 추가하였다 백준-15649번 N과 M (1) 파이썬 (python code) 문제번호:15649 난이도: 실버3 간단한 dfs 백트래킹 문제이다. 삼성 sds 동계알고리즘 특강을 들으며 dfs문제 이해가 오래걸려 기본문제부터 풀어보게 되었다. from sys import stdin def dfs(cnt): if(cnt==M):.. reminder-by-kwan.tistory.com from sys import stdin def dfs(cnt): if cnt == M: print(*answer) return for i in range(N)..
문제번호:15649 난이도: 실버3 입력이 하나일때에 대한 예외처리와 최빈값이 여러개일때의 처리에 유의하면서 풀어보자. from sys import stdin,exit from collections import Counter if __name__ == '__main__': num= int(stdin.readline().rstrip()) mylist=[(int(stdin.readline().rstrip())) for _ in range(num)] mylist.sort() print(round(sum(mylist)/num)) print(mylist[int(num/2)]) cmm=Counter(mylist).most_common() if(len(mylist)>1): print(cmm[0][0] if cmm[0..
문제번호:15649 난이도: 실버3 간단한 dfs 백트래킹 문제이다. 삼성 sds 동계알고리즘 특강을 들으며 dfs문제 이해가 오래걸려 기본문제부터 풀어보게 되었다. from sys import stdin def dfs(cnt): if(cnt==M): print(*answer) return for i in range(N): if(checklist[i]==False): checklist[i]=True answer.append(numlist[i]) dfs(cnt+1) answer.pop() checklist[i]=False if __name__ == '__main__': N,M= map(int,stdin.readline().split()) numlist = [i+1 for i in range(N)] answ..
문제번호:11399 난이도: 실버3 총 대기시간의 최솟값을 계산하는 문제이다. 한번만 생각해보면 제일 짧은사람부터 줄을 서는것이 가장 빠르다는것을 알 수 있다. N명이 있을때 첫번째는 N만큼의 가중치를 가지고 2번째는 N-1의 가중치를 가지는 식이다. 따라서 아래와 같이 작성해보았다. import sys def Sort(number): Sortlist=sys.stdin.readline().rstrip().split(' ') for i in range(number): Sortlist[i]=int(Sortlist[i]) Sortlist.sort() addnum=0 for j in range(number): addnum+=(number-j)*Sortlist[j] print(addnum) if __name__ ..