본문 바로가기
[딥러닝 실습] 활성화 함수 연습(step, sigmoid ,relu function) #활성화 항수(step fuction, sigmoid 그려보기) import numpy as np import matplotlib.pyplot as plt def step_function(x): y = x>0 return y.astype(np.int) #astype(np.xx)는 xx형태로 타입을 바꿔주는것 def sigmoid(x): return 1/(1 + np.exp(-x)) def rulu(x): return np.maximum(0,x) x = np.arange(-5.0,5.0,0.01) y1 = step_function(x) y2 = sigmoid(x) plt.plot(x,y1,"r",label ="step function") plt.plot(x,y2,"b",label ="sigmoid func.. 2020. 4. 14.
[백준][파이썬] 벽 부수고 이동하기 2 import sys from collections import deque n,m,chance = map(int,sys.stdin.readline().split()) map1 =[] for i in range(n): tt = list(sys.stdin.readline()) map1.append(tt) dx = [0,0,-1,1] dy = [1,-1,0,0] def go(stack): while stack: x,y,dim = stack.popleft() for i in range(4): X = x+dx[i] Y = y+dy[i] if 0 2020. 4. 14.
[백준][파이썬] 2206 벽 부수고 이동하기 - 메모리초과 BFS문제이지만 기존의 문제들과는 조금의 차이가 있다. 벽을 뚫을수 있다는 것을 체크해줘야한다. 1. 벽 뚫기를 위해 [x,y, 횟수] 이런식으로 저장을 해준다. 2. visited를 활용할때 주의할 점은 벽 안뚫기 / 벽 뚫었을때 따로 방문여부를 체크해줘야한다 (만약에 체크해주지 않으면, 벽뚫 vs 안뚫 이 만났을 때 오류가 생긴다 3. 메모리초과를 해결하지 못했다..... import sys import collections n, m = map(int,sys.stdin.readline().split()) map1 = [list(map(int,[*input()])) for k in range(n)] def recu(stack): stack.append([0,0,0]) cnt = 1 while stack.. 2020. 4. 13.
[백준][파이썬] 16768 Mooyo Mooyo [핵심] 1. gravity함수 letsdel 함수 n, k = map(int,input().split()) map1 = [] for i in range(n): tt = list(input()) map1.append(tt) #str로 저장한거 기억하기 def gravity(map1): #중력 temto = [] temchange = [] for i in range(10): #열마다 tem = [] for j in range(n):#숫자저장 if map1[j][i] != "0": tem.append(map1[j][i]) for k in range(n-len(tem)): #뒤에 0채워주기 tem.insert(0,"0") temto.append(tem) for i in range(n): #행열 바꿔주기 tem.. 2020. 4. 8.
[백준][파이썬] 3055번 탈출 -BFS 기본적인 BFS 문제에서 조금의 변형이 들어간 문제다. 처음 활용된 것은 물이라는 장애물도 퍼져나간다는것이다. 물 -> 길 ->물 ->길을 while안에서 활용했다 -항상 특정지점의 주변 모두를 한턴에 체크(FALSE)할때는 for(len(stack))구조로 활용해 주면 된다. -추가적으로 최단거리를 세기 위해서는 다른 리스트를 하나 더 만들어 수를 파악해주면 된다 import sys import collections n,m = map(int,input().split()) lit =[] ans =0 for i in range(n): tt = list(sys.stdin.readline()) lit.append(tt) dx = [0,0,1,-1] dy = [1,-1,0,0] def bfs(start,wate.. 2020. 4. 7.
[백준][파이썬] 1759 암호만들기 시간초과가 안났다!!!!!1 일단, 핵심은 N과 M(2)번을 응용한것과 거의 동일하다. (N과 M 시리즈를 계속 반복해야겠다.) 숫자를 알파벳으로, 그리고 리턴하기전에 하나의 조건만 달아주면 끝! L , C = map(int,input().split()) lit = list(map(str,input().split())) s = "s" lit.sort() visited=[False]*C def per(depth,idx,stack,lit): if depth == L: count =0 for check in stack: if check in ["a",'e','i','o','u']: count +=1 if count > 0 and L-count > 1: print("".join(map(str,stack))) f.. 2020. 4. 6.
[백준][알고리즘] 14888 연산자 끼워넣기 def plus(a,b): return a+b def minus(a,b): return a-b def multi(a,b): return a*b def div(a,b): if a 이전 문제의 방식을 응용을 통해서 재귀함수가 상당히 깔끔해졌다. 리스트를 만드는 방식, enumerate 또한 적절히 잘 활용했다. num = int(input()) numlist = list(map(int,input().split())) calu = list(map(int,input().split())) mx = -10**9 mn = 10**9 # 가능한 조합 생성 하기 calu_t = calu[0] * "+" + calu[1] * "-" + calu[2] * "*" + calu[3] * "/" check = [False] * .. 2020. 4. 6.
[백준][파이썬] 10971 원판원 순회2 - 시간초과.. num = int(input()) money = [] for i in range(num): tem = list(map(int,input().split())) money.append(tem) lit = [] ans = 10**8 def permu(visited,k): global ans if k == num: temnum =0 lit.append(visited) tem = visited for j in range(num - 1): if money[tem[j] - 1][tem[j + 1] - 1] == 0: temnum =0 break temnum += money[tem[j] - 1][tem[j + 1] - 1] if money[-1][tem[0]] == 0: temnum = 0 else: temnum +=.. 2020. 4. 6.
모든 순열 구하는 방법(재귀함수를 활용) 간단한 코드이다. 물론 다음순열 이전순열 구하는 방식도 기억을 해두자! num = int(input()) def permu(visited,k): if k == num: print(" ".join(list(map(str,visited)))) else: for i in range(1,num+1): if i not in visited: permu(visited+[i],k+1) permu([],0) 2020. 4. 6.