mstst33

SW Developer

[BaekJoon] Self Number

Source: https://www.acmicpc.net/problem/4673 문제 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, 이 수를 시작해서 n, d(n), d(d(n)), d(d(d(n))), …과 같은 무한 수열을 만들 수 있다. 예를 들어, 33으로 시작한다면 다음 수는 …

[BaekJoon] Self Number 더 보기 »

[Visual Studio] Windows Library (DLL) 만들기

막상 Windows 라이브러리를 만드려면 어떻게 해야 하는지 기억이 잘 안 나서 정리를 한번 해보려 합니다. Visual Studio 를 열고 DLL 프로젝트 하나 만들어 줍니다. DllTest라 명명하겠습니다. 구성 형식이 동적 라이브러리로 잘 되어 있는지 확인합니다. exe나 정적 라이브러리 (lib)으로 되어 있으면 dll로 바꿔 줍니다. 아래 와 같은 dll 진입시 처리 하는 파일이 생성되어 있습니다. 없으면 #include …

[Visual Studio] Windows Library (DLL) 만들기 더 보기 »

머신 러닝의 분류

머신 러닝에는 현재 지도학습, 비지도학습, 자기 지도 학습, 강화 학습 4개의 커다란 범주가 있다.             1. 지도학습 기존에 했던 이진 분류, 다중 분류, 스칼라 회귀 같이 샘플 데이터와 사람이 제시한 타깃에 매핑하는 방식의 학습 방법이다. 즉, 사람이 데이터와 정답을 모두 제시하여 이런 경우에는 이게 맞다고 하며 직접 지도하는 방식인 것이다. …

머신 러닝의 분류 더 보기 »

신경망 기초 활용

신경망의 기초 활용에 대해 알아보자 벌써 3번째지만 중요한 신경망의 구조다. 이번에는 각각의 문제를 해결하기 위해 적합한 신경망의 기초 활용에 대해 알아보겠다. 이진 분류 이진 분류는 쉽게 말해 0과 1, 참과 거짓, 긍정과 부정 등으로 이분법 가능한 경우에 쓰이는 기법이다. 책(케라스 창시자에게 배우는 딥러닝)에서 나오는 대표 예제는 IMDB(Internet Movie DataBase)를 활용한 영화 평가에 대한 예제이다. 이 …

신경망 기초 활용 더 보기 »

텐서와 그래디언트 기반 최적화

저번에는 딥러닝이 무엇 인가에 대해 알아 보았고, 이번에는 머신러닝 기법 중 하나인 딥러닝의 차이를 나타내는 신경망(깊은 층)의 기본 구성요소에 대해 간략히 알아보고 신경망을 어떻게 최적화 시키는지 개념적으로 알아보자.    텐서 (Tensor) 머신 러닝의 기본 구성 요소로 데이터를 위한 그릇(Container) 역할을 한다. 일반적으로 Ptython 으로는 numpy 라는 library로 배열을 만들어 쓴다. 텐서의 종류는 배열 차원에 따라 …

텐서와 그래디언트 기반 최적화 더 보기 »

딥러닝(Deep Learning) ?

케라스 창시자에게 배우는 딥러닝, 프로그래머를 위한 선형 대수, 밑 바닥부터 시작하는 딥러닝 얼마 전 부터 위 세 개 책으로 딥러닝 공부를 시작했고 공부한 것들을 나름 정리해 보려한다. 처음에 궁금하던 것이 인공지능과 머신러닝, 딥러닝의 관계? or 차이였다. 책에 따르면 그 관계에 대한 설명은 아래 그림으로 간략하게 나타낼 수 있다.               …

딥러닝(Deep Learning) ? 더 보기 »

[Programmers] 쇠막대기

Problem Link: Lv2. 쇠막대기 문제 설명 여러 개의 쇠막대기를 레이저로 절단하려고 합니다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자릅니다. 쇠막대기와 레이저의 배치는 다음 조건을 만족합니다.

아래 그림은 위 조건을 만족하는 예를 보여줍니다. 수평으로 그려진 굵은 실선은 쇠막대기이고, 점은 레이저의 위치, 수직으로 그려진 점선 화살표는 레이저의 발사 방향입니다. 이러한 …

[Programmers] 쇠막대기 더 보기 »

[Programmers] 하노이의 탑

Problem Link : Lv3. 하노이의 탑 문제 설명 하노이 탑(Tower of Hanoi)은 퍼즐의 일종입니다. 세 개의 기둥과 이 기동에 꽂을 수 있는 크기가 다양한 원판들이 있고, 퍼즐을 시작하기 전에는 한 기둥에 원판들이 작은 것이 위에 있도록 순서대로 쌓여 있습니다. 게임의 목적은 다음 두 가지 조건을 만족시키면서, 한 기둥에 꽂힌 원판들을 그 순서 그대로 다른 기둥으로 옮겨서 …

[Programmers] 하노이의 탑 더 보기 »

[Programmers] 최고의 집합

Link : Lv3. 최고의 집합 문제 설명 자연수 n 개로 이루어진 집합 중에 다음 두 조건을 만족하는 집합을 최고의 집합이라고 합니다. 각 원소의 합이 S가 되는 수의 집합 위 조건을 만족하면서 각 원소의 곱 이 최대가 되는 집합 예를 들어서 자연수 2개로 이루어진 집합 중 합이 9가 되는 집합은 다음과 같이 4개가 있습니다. { 1, 8 …

[Programmers] 최고의 집합 더 보기 »

[Programmers] 가장 긴 팰린드롬

Link : Lv3. 가장 긴 팰린드롬 문제 설명 앞뒤를 뒤집어도 똑같은 문자열을 팰린드롬(palindrome)이라고 합니다. 문자열 s가 주어질 때, s의 부분문자열(Substring)중 가장 긴 팰린드롬의 길이를 return 하는 solution 함수를 완성해 주세요. 예를들면, 문자열 s가 abcdcba이면 7을 return하고 abacde이면 3을 return합니다. 제한사항 문자열 s의 길이 : 2500 이하의 자연수 문자열 s는 알파벳 소문자로만 구성   문제 풀이 단순히 첫 문자에서 …

[Programmers] 가장 긴 팰린드롬 더 보기 »