목록전체 글 (165)
No Limitation
참고 자료 : 유원준 님의 Pytorch로 시작하는 딥러닝 입문 https://wikidocs.net/61010 신경망의 기초 단위 퍼셉트론을 소개할 때 많이 나오는 XOR gate. 다른 AND, OR Gate와는 달리 선형 분류기로는 분류가 될 수 없는 구조가 XOR gate이다. 고로, 이는 단층 퍼셉트론으로는 분류가 불가능하며 다층 퍼셉트론을 통해 분류가 가능하게 된다. 그렇다면 이러한 논리를 Pytorch에서는 어떻게 구현하는 지 확인해보자. 우선, 단일 퍼셉트론이 왜 안되는지 직접 실행을 통해 확인해보자 초기 세팅과 데이터 준비 신경망 구축, nn.Linear + nn.Sigmoid의 단일 퍼셉트론으로 구축됨을 확인할 수 있다. Training 수행 0 0.7273974418640137 100..
본 포스팅은 한동대학교 최혜봉 교수님 강의 자료를 참고했음을 밝힙니다. 최단 경로라는 것은 출발지에서 목적지까지 가는 경로에서 가장 비용이 적게 드는 최적 경로를 계산하는 것을 의미한다. 다음 피피티 슬라이드를 참고해보자 우선 최단 경로라는 것은 여러 특징들을 바탕으로 하는데 1. 하나의 최단 경로 내 부분 경로는 자체로 최단 경로를 이룬다. 2. 하나의 vertex에서 다른 vertex로 가는 최단 경로로 구성된 트리들이 있다. 이 2가지 특징이 기본으로 전제가 된다. 1번은 어떠한 것을 의미하냐면 예를 들어 A->B가 최단 경로라고 한다면, A -> x x -> y y -> B라고 하면 A -> x, x -> y, y -> B 각각도 최단 경로가 됨을 의미한다. 그렇다면 여기서 중요한 것은 또한 최단..
5장 7. 내가 어찌 너를 용서하겠느냐 네 자녀가 나를 버리고 신이 아닌 것들로 맹세하였으며 내가 그들을 배불리 먹인즉 그들이 간음하며 창기의 집에 허다히 모이며 9. 여호와의 말씀이니라 내가 어찌 이 일들에 대하여 벌하지 아니하겠으며 내 마음이 이런 나라에 보복하지 않겠느냐 21. 어리석고 지각이 없으며 눈이 있어도 보지 못하며 귀가 있어도 듣지 못하는 백성이여 이를 들을지어다 22. 여호와의 말씀이니라 너희가 나를 두려워하지 아니하느냐 내 앞에서 떨지 아니하겠느냐 내가 모래를 두어 바다의 한계를 삼되 그것으로 영원한 한계를 삼고 지나치지 못하게 하였으므로 파도가 거세게 이나 그것을 이기지 못하며 뛰노나 그것을 넘지 못하느니라 23. 그러나 너희 백성은 배반하며 반역하는 마음이 있어서 이미 배반하고 갔..
https://programmers.co.kr/learn/courses/30/lessons/77885?language=python3 코딩테스트 연습 - 2개 이하로 다른 비트 programmers.co.kr 진수 개념에 대한 참고 https://brownbears.tistory.com/467 개인적으로 굉장히 어려운 문제라고 생각이 들고 연습이 많이 필요한 유형이다 여러 가지 다양한 규칙을 찾아보는 문제로 추측이 되는데, 최근 이러한 '비트'문제를 많이 요구하는 문제들이 많은 것 같다. 해당 문제의 경우 홀수 짝수를 나누어서 생각을 했던 것이 포인트였다. 다음과 같은 규칙이 있다. 1. 짝수 짝수의 경우 f(2) ⇒ 10 —→ '3' ⇒ 11 f(4) ⇒ 100 —→ '5' ⇒ 101 f(6) ⇒ 110..
참고 포스팅 : https://shoark7.github.io/programming/algorithm/3-LIS-algorithms https://stackoverflow.com/questions/35075862/longest-bitonic-subsequence-in-onlogn-complexity 최장 증가 수열(Longest Increasing Subsequence)은 어떠한 수열에서 특정 부분을 지워서 만들어낼 수 있는 증가 부분 수열(increasing subsequence) 중 가장 긴 수열을 의미한다. 여기서 최장 증가 수열은 반드시 뒤의 숫자가 앞의 숫자보다 더 큰 경우만 의미를 하게 된다. LIS에서 핵심은 현재 내가 증가시키고 있는 수열에서 다음 수가 더 큰 경우에는 추가를 해주되 더 큰..
https://programmers.co.kr/learn/courses/30/lessons/77884?language=python3 코딩테스트 연습 - 약수의 개수와 덧셈 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주 programmers.co.kr 약수를 구하는 문제는 (어떤 수)/(나누는 수) 이러한 수식의 결과 나머지가 0이 되면 나누는 수는 어떤 수의 약수가 됩니다 이러한 매커니즘을 활용하여 문제에 접목시켜 볼 수 있습니다. 이 경우는 완전탐색을 수행하여 구현한 코드입니다. def checks(num) : ls = [j..
https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net 백트래킹 문제는 보통 모든 경우를 시뮬레이션 하여 Brute force하게 문제를 풀어나가는 방법으로 접근을 시도. 퍼즐 문제를 푸는 유형들이 그러하였고 이 문제 역시 연산자들의 input 경우의 수가 많고 랜덤하기에 수많은 경우를 무식하게 때려박아 보는 방법으로 접근을 시도할 수 있다. 즉, 수많은 경우의 수를 가지고 문제를 풀어야 할 경우..
https://www.acmicpc.net/problem/1890 1890번: 점프 첫째 줄에 게임 판의 크기 N (4 ≤ N ≤ 100)이 주어진다. 그 다음 N개 줄에는 각 칸에 적혀져 있는 수가 N개씩 주어진다. 칸에 적혀있는 수는 0보다 크거나 같고, 9보다 작거나 같은 정수이며, 가장 www.acmicpc.net 많이 익숙한 그래프 maps 탐색 유형이다 우선 maps의 경로를 짤 때 유형은 꼭 익혀 놓도록 하자! 유사 유형들과 같다 우선 최종 구현 코드는 다음과 같다. N = int(input()) maps = {} for i in range(N) : maps[i] = [int(x) for x in input().split()] global cnt cnt = 0 def search(row, c..
https://www.acmicpc.net/problem/1520 1520번: 내리막 길 첫째 줄에는 지도의 세로의 크기 M과 가로의 크기 N이 빈칸을 사이에 두고 주어진다. 이어 다음 M개 줄에 걸쳐 한 줄에 N개씩 위에서부터 차례로 각 지점의 높이가 빈 칸을 사이에 두고 주어진다. www.acmicpc.net 문제풀이 다음 문제는 앞에서 많이 다루었던 일반적인 그래프 문제와 유사했습니다 하지만 여기서 주의할 점은 바로 경우의 수를 구하는 문제였습니다. 그래서 여기서 생각한 아이디어는 방문한 모든 경우를 global 변수 값에 저장하면 바로 그 경우가 모든 경우의 수를 count하는 것으로 생각했습니다. 그래서 처음 제출을 시도한 코드는 다음과 같았습니다 n, m = [int(x) for x in in..
https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 처음으로 DP와 백트래킹으로 시도한 코드는 다음과 같다. from collections import defaultdict n, m = [int(x) for x in input().split()] maps = {} for i in range(n) : ls = [] get = input() for j in get : ls.append(int(j)) maps[i] = ls n ..