2589 보물섬 import sys from collections import deque input = sys.stdin.readline s, g = map(int, input().split()) maps = [] for _ in range(s): maps.append(list(input())) dxdy = [(0,1), (0,-1), (1,0), (-1,0)] def bfs(i,j): q = deque() q.append((i, j)) visited = [[False]* g for _ in range(s)] visited[i][j] = 1 length = 0 while q: x, y = q.popleft() for i in range(4): dx = dxdy[i][0] dy = dxdy[i][1] nx..
피피티로 발표하는 것처럼 정리하면 머리속에 잘 들어가서 피피티로 만들었다. 키워드 보면 다 떠오르니까 어느정도 공부가 된 것 같다.
정렬 정렬 알고리즘 5문제 풀기 백준 1181 단어 정렬 n = int(input()) words = [] for _ in range(n): words.append(input()) words = list(set(words)) words.sort() words.sort(key = lambda x:len(x)) for x in words: print(x) 백준 3273 두 수의 합 import sys n = int(input()) nums = list(map(int, sys.stdin.readline().rstrip().split())) nums.sort() x = int(input()) cnt = 0 left = 0 right = len(nums) - 1 while left < right: tmp = nu..
DFS/BFS 깊이 우선 탐색 / 넓이 우선 탐색 설명은 이전 글에 있으니 생략하겠다. 백준 2644 촌수계산 from collections import deque n = int(input()) p1, p2 = map(int, input().split()) m = int(input()) relat = [] res = [] visited = [False] * (n+1) for _ in range(m): x, y = map(int, input().split()) relat.append([x, y]) relat.append([y, x]) graph = [[]] for i in range(1, n+1): temp = [] for x in relat: if x[0] == i: temp.append(x[1]) gr..
다이나믹 프로그래밍 효율적인 알고리즘을 위해 사용할 수 있는 기법. top-down(메모이제이션, 하향식) / bottom-up(상향식) 방식이 있다. 간단하게 설명하면 문제를 작은 문제부터 해결하여 큰 문제의 답을 도출하는 방식. 백준 17202 핸드폰 번호 궁합 a = list(input()) b = list(input()) data = [] for i in range(len(a)): data.append(a[i]) data.append(b[i]) dp = [0 for _ in range(15)] for i in range(len(data)-1): dp[i] = (int(data[i]) + int(data[i+1])) % 10 for i in range(14, 1, -1): for j in range..
Connection / Add 다르게 해서 모델 설계하기 약간 multi-task learning이랑 비슷해보여서 헷갈렸는데, Iris 데이터를 보면 sepal length / sepal width / petal length / petal width가 있다. length는 length 끼리 묶고, width는 width끼리 묶어서 모델에게 넣어주고 마지막에 모델을 붙여보자. 데이터 불러오기 import numpy as np import pandas as pd import tensorflow as tf from tensorflow import keras from sklearn.datasets import load_iris iris = load_iris() x = iris.data y = iris.targe..
은닉층 추가 어제 만들었던 모델에 은닉층을 추가해보자. = Hidden Layer 라이브러리를 먼저 불러와준다. from sklearn.datasets import fetch_california_housing california = fetch_california_housing() x = california.data y = california.target x.shape, y.shape# (20640,8) (20640,) import tensorflow as tf import pandas as pd import numpy as np from tensorflow import keras 어제 배운대로 모델 구조를 하나씩 쌓아가자. keras.backend.clear_session() model = keras.m..
프레임워크 선택 - Tensorflow(Keras) 보통 Tensorflow, Pytorch 둘 중 하나 쓰는데 나는 파이토치가 익숙하지만, 수업에서는 tensorflow의 keras를 써서 더 잘 됐다는 생각이 들었다. tensorflow도 연습을 할 수 있어서 일석이조다. Linear Regression / Logistic Regression import tensorflow as tf from tensorflow import keras import numpy as np 기본 라이브러리 불러오기 - colab을 사용하면 별도의 설치 필요 없이 코드로 불러와 사용할 수 있다. x = np.array(range(30)) y = x * 2 - 10 print(x) print(y) x값을 토대로 y를 예측하는..
선행 개념 스택, 큐, 재귀 개념을 먼저 공부하고 들어가자. Stack 스택은 박스 쌓기로 생각하면 편하다. 나중에 쌓인 것이 가장 먼저 들릴 수 있는 것처럼, 이러한 구조를 LIFO(Last In First Out)라 한다. 파이썬에서는 리스트로 스택을 구현할 수 있다. stack = [] stack.append(1)# [1] stack.append(2)# [1, 2] stack.append(3)# [1, 2, 3] stack.pop()# [1, 2] stack.append(4)# [1, 2, 4] pop() 메소드는 가장 뒤의 데이터를 제거하고, append는 가장 뒤에 데이터를 삽입한다. 백준 10828 스택 import sys n = int(input()) stack = [] cmd = [sys...
머신러닝 머신러닝, 딥러닝 등 많이 들어봤을테지만, 머신러닝이 좀 더 큰 개념이라 생각하면 된다. 학습 방법에 따른 분류 / 과제(문제)에 따른 분류로 나눌 수 있다. 학습 방법에 따라 지도 학습 학습 대상 데이터에 정답을 라벨링하여 학습시키는 것. 비지도 학습 정답이 없는 데이터만으로 학습시키는 것. 강화 학습 선택 결과에 따라 보상을 받는 쪽으로 행동을 개선하게 하면서 학습시키는 것. 과제에 따라 분류 문제(Classification) - 지도학습 Train set - 이미 분류된 데이터로 학습을 통해 규칙을 찾고, Val set / Test set으로 새롭게 주어진 데이터를 분류 회귀 문제(Regression) - 지도학습 Train set - 결과값이 있는 데이터로 학습을 통해 입력 값 / 결과 ..