본문 바로가기
[파이썬]DFS BFS 연습할 기본 코드 def dfs(v): print(v, end=' ') visit[v] = 1 for i in range(1, n + 1): if visit[i] == 0 and s[v][i] == 1: dfs(i) def bfs(v): queue = [v] visit[v] = 0 while (queue): v = queue[0] print(v, end=' ') del queue[0] for i in range(1, n + 1): if visit[i] == 1 and s[v][i] == 1: queue.append(i) visit[i] = 0 n, m, v = map(int, input().split()) s = [[0] * (n + 1) for i in range(n + 1)] visit = [0 for i in ran.. 2020. 3. 29.
[백준][파이썬] 2606 바이러스(DFS-Depth First Search) 사실 3번째 도전이였다.. 처음 DFS가 잘 모르는 상태에서 문제를 풀려고 했을때, 너무 어렵게 느껴졌고 DFS 개념을 보고 다시 문제를 풀려했을때도 어려웠다. 근데 분할정복, N과M 시리즈, 별찍기를 풀고 DFS 기본문제인 배추문제와 텀프로젝트 문제를 풀고 다시 돌아왔더니 너무 쉽게 풀려서 당황했다. 역시 지금 단계(실력)에서는 많은 고민 보다는 코드의 구조를 공부하고 변형하는 연습을 많이하는것이 실력 상승에 도움이 될것같다. num = int(input()) case = int(input()) lit = [[0 for i in range(num)] for j in range(num)] for i in range(case): x,y =map(int,input().split()) lit[x-1][y-1].. 2020. 3. 29.
[파이썬][백준] 2667 단지번호 붙이기 [핵심] 배추문제랑 거의 동일한 문제 차이점은 수를 하나더 카운팅 해주는것뿐 While문을 활용한 del 기억하자!!! num = int(input()) lit = [] dx = [0,0,1,-1] dy = [1,-1,0,0] ans =[] cot =[] def recu(x,y): cnt = 0 stack = [[x,y]] while stack: x = stack[0][0] y = stack[0][1] del stack[0] cnt+=1 lit[x][y] = '0' for i in range(4): X = int(x)+dx[i] Y = int(y)+dy[i] if 0 2020. 3. 28.
[ML lab 02] ML lab 02 - TensorFlow로 간단한 linear regression을 구현 -linear Regression 모델 구현 -placeholder , Feed_dict를 이용하여 원하는 데이터로 학습시켜보기 import tensorflow.compat.v1 as tf tf.disable_v2_behavior() x_train = [1,2,3] y_train = [1,2,3] #Weight값, bias값 설정 W = tf.Variable(tf.random_normal([1]),name='weight') b = tf.Variable(tf.random_normal([1]),name='bias') hypothesis = x_train * W +b #cost함수 정의(reduce_mean) cost = tf.reduce_mean(tf.square(hypothesis - y_train)) #.. 2020. 3. 28.
[파이썬][백준] 9466 텀프로젝트 - 시간초과 시간초과가 발생했다. 그 이유는 이중포문떄문일까...? 아직 잘 모르겠다. import sys numtest =int(sys.stdin.readline()) count =0 for i in range(numtest): numstu = int(sys.stdin.readline()) check = [False]*numstu stu_sel =list(map(int,sys.stdin.readline().split())) for j in range(numstu): # 매칭시 True로 만들기 stack=[j] if check[stu_sel[j]-1] == False: while True: if check[stu_sel[j]-1] == False: stack.append(stu_sel[j]-1) j = stu_se.. 2020. 3. 27.
[파이썬][백준] 에라토스테네스의 체 골드바흐의 추측 문제를 풀려다보니, 에라토스테네스의 체의 소수를 구하는 방법을 공부하기 위해 풀었다. 생각보다 너무 간단했다. num,k = map(int,input().split()) lit = [i for i in range(2,num+1)] count = 0 while True: q = lit[0] for i in lit: if i % q ==0: lit.remove(i) count += 1 result = i #마지막 값 저장 if count == k: break if count ==k: break print(result) 그리고 나서, 위의 기법을 활용하여 약수를 출력하도록 변행시켰다. num = int(input()) lit = [i for i in range(2,num+1)] count = .. 2020. 3. 27.
ML lab 01 - tensorflow의 설치 및 기본적인 operation 정말 간단한 코드 쉬운 코드가 맞지만 출력하기 위해서 오래걸렸다..... 파이참에 텐서플로우를 설치하는데 파이썬 version이 안맞아서 다시 설치하고 등등 원래 코딩은 환경세팅이 귀찮고 피곤하다. 밑의 코드에서 Session()은 tensorflow 2.0이 나오면서 종료되었다고 한다. 하지만 옛날 강좌이기 때문에 사용하려면 위의 disable~~~코드를 작성해주어야 한다. import tensorflow.compat.v1 as tf tf.disable_v2_behavior() hello = tf.constant("HELL") sess = tf.Session() print(sess.run(hello)) 실행 방법 바로 출력이 아닌 Session을 통해(근데 예전 방법인듯 하다) import tensor.. 2020. 3. 27.
[파이썬][백준]6588 골드바흐의 추측 시간초과 해결못함 https://bbunada.tistory.com/46를 참고했다(시간초과를 해결하지 못함) import sys #에라토스테네스의 체를 활용하여 모든 소수를 구한다. MAX = 1000000 check = [False, False] + [True] * (MAX-1) primes = [] count = 0 for i in range(2, MAX+1): if check[i]: primes.append(i) count += 1 for j in range(i*2, MAX+1, i): check[j] = False # 내가 원하는 소수를 찾는 이 부분이 어려웠다. while True: N = int(input()) # N = int(sys.stdin.readline()) if N == 0: break for i .. 2020. 3. 26.
[백준][파이썬] 1012 유기농 배추 BFS [핵심] BFS 분류되는 이유는 결국 1과 붙어있는것들을 모두 제거할때 count가 증가하기떄문이다. 연습해야할 코딩 방식 1. dx dy를 이용한 좌표처리 그리고 경계값 -1일때 인덱스 에러 안나게 범위 설정해주는것 2. 재귀함수를 이용한것이 아니라 While문으로 활용 3. [0]*n으로 배열을 만들면 이상하게 다르게 값이 출력된다.. (이유는 아직 모름) 주소값을 공유하는 개념때문인가? 여러번 코딩해서 구조 익힐것 numcase = int(input()) dx = [-1,0,0,1] dy = [0,1,-1,0] def recu(x,y): check = [[x,y]] while check: checka = check[0][0] #x,y값 저장 checkb = check[0][1] del check[0.. 2020. 3. 26.