보호되어 있는 글입니다.
3차원 이상의 텐서 사이의 행렬 곱 - 텐서플로우 목차 3차원 텐서 사이의 행렬 곱 어떻게 작동하는걸까? 5차원 텐서 사이의 행렬 곱 3차원 텐서 사이의 행렬 곱 텐서플로우를 처음 접하고 텐서플로우 코드를 보다가 아래 예시 코드처럼 3차원 텐서 사이에서 행렬 곱(tf.matmul)을 하는 코드를 만났습니다. 행렬 곱은 2차원에서만 정의되는 줄 알고 있었는데 3차원 텐서에서도 어떻게 행렬 곱(tf.matmul)함수가 사용 가능한 건지 의문이 들었습니다. A = tf.Variable(tf.random_normal([2, 2, 3])) B = tf.Variable(tf.random_normal([2, 3, 7])) C = tf.matmul(A, B) 텐서플로우에서 텐서는 다차원 행렬, 코드상에서는 다차원 배열..
Union-Find 란? Union-Find 란? Union-Find 의 구현 배열로 표현하기 트리로 표현하기 트리로 표현하기 : 실제 소스코드 최적화 하기 최적화 하기 : 실제 소스코드 Union-Find 정리 끝 Union-Find 란? Union-Find 란 Disjoint Set 을 표현할 때 사용하는 독특한 형태의 자료구조로, 공통 원소가 없는, 즉 "상호 배타적" 인 부분 집합 들로 나눠진 원소들에 대한 정보를 저장하고 조작하는 자료구조 입니다. 위의 상황을 표현하기 위해서는 초기화 과정과 다음과 같은 두 가지 연산을 지원해야 하기 때문에, Union-Find 자료구조 라고 부르게 되었다고 합니다. Union-Find 지원 연산 초기화 : N 개의 원소가 각각의 집합에 포함되어 있도록 초기화 ..
SCPC 2016 1차 예선 풀이 목차 SCPC 2016 1차 예선 풀이 문제1. 3N+1 문제2. 징검다리 문제3. 바이러스 문제4. 대피소 문제5. 구두제작 삼성 대학생 프로그래밍 대회(SCPC) 2016 1차 예선에서 제가 푼 방법들입니다. 고수분들의 구현보다 많이 부족하지만 열심히 정리했습니다! 문제1. 3N+1 문제 요약 짝수는 절반으로 나누고 홀수는 3배하고 1을 더하는 규칙을 K번 적용해서 1을 만들 수 있는 수들 중에서 가장 큰 수와 가장 작은 수를 구하는 문제입니다.풀이 아래 그림1처럼 숫자 1에서 시작해서 규칙을 역으로 K번 적용해서 만들 수 있는 수를 모두 구하고 그 중 가장 큰 수와 가장 작은 수를 선택했습니다. 구현 재귀 함수로 위 과정을 구현했습니다. 코드는 주석으로 설명했습니다..
[기하]다각형의 내부 외부 판별 목차 [기하] 다각형의 내부 외부 판별 다각형의 내부 외부 판별이란? 아이디어 다각형의 내부에 위치하는 점의 특징은 뭘까? 구현 어떻게 반 직선과 다각형의 교점 개수를 구하지? 소스 코드 다각형의 내부 외부 판별이란?그림1에는 다각형과 두개의 점(점 A, 점 B)가 있습니다. 이 그림에서 눈으로 딱 보고 점A 는 다각형 외부에 있고 점B는 다각형 내부에 있다는 것을 쉽게 알 수 있습니다.이렇게 다각형에 대해 주어진 점이 다각형 내부에 있는지 외부에 있는지 판별하는 것을 다각형의 내부 외부 판별이라고 합니다. 아이디어 다각형의 내부에 위치하는 점의 특징은 뭘까? 눈으로 보고 직관적으로 점이 다각형 내부에 있는지 판별하는 것은 아주 쉽습니다. 5살 어린이들한테 이 문제를 내도..
삼각분할 목차 삼각분할 문제 설명 Solution Code 문제 설명 문제 : 백준온라인저지(BOJ) 7737 삼각분할 다각형이 주어졌을 때 삼각형으로 분할 할 수 있는 경우의 수를 구하는 문제다. 5각형은 아래 그림1 처럼 5가지 방법으로 삼각분할 할 수 있다. n각형을 삼각 분할하는 경우의 수를 이라 할 때 을 주어진 값 M으로 나눈 나머지를 출력해야한다. Solution 이 문제는 유명한 카탈란 수 문제이다. 왜 뜬금 없이 카탈란 수가 삼각 분할하는데 나왔을까? 추론 과정을 따라가보자. 아래 그림2 처럼 오각형의 각 변에 2, 3, 4, 5로 숫자를 표시하고 오각형의 대각선으로 추가되는 새로운 변에 나머지 두 변에 적힌 수의 곱을 표시하도록 하자. 여기서부터 직관적으로 n각형을 삼각분할 하는 것이 ..
[구글 Codejam] B번 문제 (2016 Round1 B) 목차 [구글 Codejam] B번 문제 (2016 Round1 B) 문제 요약 생각 흐름 솔루션 코드 정리 이 문제의 이름은 Close Match, 2016 Codejam Round1 B의 B번 문제다. 문제 링크 : https://code.google.com/codejam/contest/11254486/dashboard#s=p1 문제 요약 두 문자열 예를 들어 1?, 2?이 주어진다. ?에 0 ~ 9 사이 숫자를 넣어서 두 수의 차이를 최소로 만드는 값을 출력하면 된다. 이 예시에서는 ?에 각각 9와 0을 넣으면 19와 20을 만들어지고 이 때 두수의 차이가 최소가 된다.주어지는 두 문자열의 길이는 항상 동일하고 두 수의 차이를 최소로 만드..
[pintos] 2. Priority Scheduling 목차 [pintos] 2. Priority Scheduling 과제 목표 Solution 아이디어 구현 결과 과제 목표 현재 핀토스에서는 스레드를 우선순위에 상관없이 실행하고 있습니다. 이 과제의 목표는 우선순위 순서대로 스레드가 실행되도록 하는 것입니다. 그럼 먼저 CPU가 어떤 순서로 스레드를 실행하는지 알아야합니다. CPU는 ready_list에 있는 스레드를 순서대로 실행합니다. 현재 핀토스에서는 ready_list에 스레드를 추가할 때 리스트에서 우선순위에 맞게 중간에 삽입하는 것이 아니라 단순히 제일 뒤에 추가하고 있습니다. Solution 아이디어 이 문제는 ready_list에 thread를 삽입할 때 우선순위가 정렬되도록 삽입하도록..
- Total
- Today
- Yesterday