Python
2606_바이러스
https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 이전글에서 사용한 bfs를 활용해서 풀어봤다. 어차피 연결된 모든 노드를 다 돌아야하기 때문에 bfs가 더 효율적일것이라 생각해봤다. 문제를 해결한 후에 검색해보니 실제로 두 방식의 차이는 크게 없다고 한다 ㅎㅎ.. 좀 더 공부하니 이렇게 모든 경우를 탐색해야하는경우는 dfs가 약간 더 빠르다고 하니 알아두면 좋을 것 같다. from collections import deque c = int(input..
1260_bfs와dfs
https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net DFS와 BFS를 확인할 수 있는 좋은 문제이다. 나도 이 문제를 풀면서 오랜만에 다시 공부했던 것 같다. 이번에는 문제를 접하자마자 그냥 풀기보다는 알고리즘 공부를 하고 좀더 효율적으로 풀자 해서 이곳저곳에서 정보를 조금 찾아보고 공부를 했다. import sys from collections import deque input=sys.stdin.readlin..
2629_양팔저울(파이썬,쉬운풀이)
https://www.acmicpc.net/problem/2629 2629번: 양팔저울 첫째 줄에는 추의 개수가 자연수로 주어진다. 추의 개수는 30 이하이다. 둘째 줄에는 추의 무게들이 자연수로 가벼운 것부터 차례로 주어진다. 같은 무게의 추가 여러 개 있을 수도 있다. 추의 무 www.acmicpc.net 처음에 문제를 보고 조금 고민을 하다가, 추를 한개씩 추가해주면서 구할수 있는 무게를 담은 리스트를 만들면 되지 않을까? 라는 생각을 했다. 원래 있던 리스트에 새로 들어온 추를 더하거나, 빼준 값을 추가해주면 쉽게 구할 것 같았다. 1 -> [ 0 , 1] 1 ,4 -> [ 0 , 1 , (0+4), (0-4) , (1 + 4 ) , (1 - 4) ] 이때 -값은 절대값을 취해주고, 중복되는 값을..
09_순환신경망 RNN
CNN이 컴퓨터 비전 문제에 주로 사용되는 인공신경망이라면, 순환신경망은 자연어 처리 문제에 주로 사용된다. 조금더 정확히 말하면 시계열 데이터를 다루기에 쵲거화된 인공신경망이다 시계열 데이터란, 시간축 중심으로 현재 데이터가 앞,뒤 시간 데이터와 연관 관계를 가지고 있는 데이털르 의미한다. 주식 가격은 시계열 데이터의 예이다. RNN은 중간에 순환되는과정이 추가되는 부분 말고는 ANN과 거의 비슷하다. 이 구조는 이전상태에 대한 정보를 일종의 메모리 형태로 저장할수 있다는 강력한 강점이 있다. 인간의 언어 같은 경우도 앞뒤 문맥에 의해 결정되므로 RNN을 적용하기 적합하다. Vanishing Gradient Problem ( 경사도 사라짐 문제 ) 1에서 받은 영향력은 시간이 지나가면서 점점 사라지게 ..
08_개,고양이 구분 인공지능 구현
이번엔 개,고양이를 구분하는 인공지능을 직접 구현해보자. https://www.tensorflow.org/datasets/catalog/cats_vs_dogs 고양이 대 개 | TensorFlow Datasets TensorFlow.js의 새로운 온라인 과정에서 웹 ML을 통해 0에서 영웅으로 거듭나십시오. 지금 등록하세요 이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to English 고양이 대 개 고양이와 개 www.tensorflow.org Dataset은 위에서 가져왔다. import os import numpy as np import matplotlib.pyplot as plt import tensorflow as tf import tensorflow_..
07_Pre-Trained CNN
만약 예제 코드가 아닌 복잡한 실제 문제를 해결하다보면 짧게는 몇시간부터 몇일에 거쳐 학습을 해야할 경우가 생긴다. 그래서 중간중간 파라미터를 저장하고 이어 학습을 진행해주는 과정이 필요한데, tf.train.CheckpointManager API를 통하여 이를 저장할 수 있다. 1. tf.train.Checkpoint클래스의 인자값으로 tf.kears.Model 인스턴스와 전역 반복횟수를 선언해준다. ckpt = tf.train.Checkpoint(step=tf.Variable(0),model=CNN_model) 2. tf.train.CheckpointManager에 인자값으로 ㅅ너언한 tf.train.Checkpoint 인스턴스와 중간 파라미터를 저장할 경로를 설정한다. ckpt_manager = t..