본문 바로가기 메뉴 바로가기

SyLab

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

SyLab

검색하기 폼
  • 분류 전체보기 (22)
    • 논문 (1)
    • English diary (2)
    • 프로그래밍 언어 (3)
      • C (0)
      • C++ (2)
      • Java (0)
      • Python (0)
      • Go (0)
      • Erlang (0)
      • Haskell (1)
      • HTML & CSS (0)
      • JavaScript (0)
    • 웹 프로그래밍 (0)
      • Spring (0)
      • Bootstrap (0)
      • Node.js (0)
    • 모바일 프로그래밍 (0)
      • Android (0)
    • 데이터베이스 (0)
      • MySQL (0)
    • 운영체제 (1)
    • 자료구조와 알고리즘 (1)
    • Competitve Programming (6)
    • 네트워크 (0)
    • 인공지능 (6)
    • Computer Vision (0)
    • 게임 프로그래밍 (1)
      • Unity (1)
    • Docker (0)
    • IT story (0)
    • 수학 (1)
  • 방명록

분류 전체보기 (22)
함수형 프로그래밍) 람다(Lambda) 사용하기

안녕하세요? 오늘 람다(Lambda)를 사용하여 여러 실험을 해보겠습니다. 람다란? 람다는 익명 함수(Anonymous function)을 의미합니다. 익명 함수는 이름 그대로 함수명이 존재하지 않는 함수를 말합니다. 아직까진 크게 와 닿진 않는데요, 한번 예제를 통해서 익숙해져보겠습니다. 예제 1) 람다 사용해보기 #include int main() { auto add = [](auto x, auto y) { return x + y; }; std::cout

프로그래밍 언어/C++ 2018. 5. 26. 20:41
백준(BOJ) 11403번 경로찾기

안녕하세요? 오늘은 백준 알고리즘 사이트에 있는 문제 중 11403번 경로찾기 문제를 풀어보겠습니다. 문제부터 보시겠습니다.i에서 j로 가는 경로가 있으면 1, 없으면 0을 저장하고 모두 출력하는 문제입니다.정점의 인덱스가 0부터 시작한다고 가정하고 예제 입력1을 보시면 i가 0일 때, 1로 갈 수 있고 i가 1일 때, 2로 갈 수 있고, i가 2일 떄, 0으로 갈 수 있습니다.즉 i가 0일 때, 0, 1, 2 모두 갈 수 있습니다. 마찬가지로 나머지 행까지 모두 계산하면 예제 출력 1과 같은 맵을 얻을 수 있습니다.저는 이 문제를 DFS 알고리즘을 사용하여 풀었습니다. 갈 수 있는 정점을 모두 들리고 다시 원점으로 돌아오면 탐색이 종료되도록 구현하였습니다. 다시 원점으로 돌아온다는 개념을 visited..

Competitve Programming 2018. 5. 26. 19:43
머신러닝의 기본 절차

안녕하세요? 오늘은 머신러닝에 들어가기 앞서 머신러닝의 큰 그림을 잡는데 사용 될 기본 프로세스에 대해 설명하겠습니다. 머신러닝은 크게 4가지 단계로 프로세스가 구성됩니다. 1. 사용할 데이터를 분석합니다.: 제가 생각하기에 데이터는 머신러닝에 있어서 큰 역할을 차지합니다. 좋은 데이터가 많으면 많을수록 모델의 알고리즘에 문제가 없다면 같은 모델이라도 성능에서 월등히 차이가 나기 때문입니다. 그렇지만 데이터를 모으고 정제하는 작업은 비용과 시간이 많이 드는 작업입니다. (그 이유로 많은 Open source로 공개된 모델을 보시면 거의 대부분 학습에 사용된 데이터는 제공하지 않습니다.) 2. 적합한 모델을 선택합니다.: 적합하다는 것은 인풋과 아웃풋에 따라 결정됩니다. 이런 상황이 주어졌다고 가정합니다...

인공지능 2018. 5. 22. 17:52
데이터셋을 구하기 좋은 장소

안녕하세요? 오늘은 머신러닝을 공부하고 연구하는데 있어 중요한 자원인 데이터셋을 구할 수 있는 유용한 사이트 중 몇 가지를 소개하고자 합니다. 1. 캐글(kaggle): 너무나 유명하죠. 캐글은 2010년에 설립되었고 예측 모델 및 분석 대회를 위한 플랫폼입니다. 2017년부터 구글의 자회사로 들어갔는데요. 수많은 데이터 과학자나 분석가들이 best한 모델을 생산해내기 위해 경쟁하는 곳입니다. 이곳에서 수많은 유용한 데이터셋을 구할 수 있습니다.링크: https://www.kaggle.com/ 2. 아마존 AWS 데이터셋(Amazon AWS datasets): Amazon web service는 클라우드를 전문으로 하는 회사입니다. 현재 클라우드 업계에서는 독보적이며 지속적으로 발전하고 있는 회사입니다...

인공지능 2018. 5. 19. 18:51
백준(BOJ) 10448번 유레카 이론

안녕하세요? 오늘은 백준 알고리즘 사이트 문제 중 하나인 10448번 유레카 이론을 풀어보겠습니다. 먼저 문제를 보겠습니다. 삼각수(triangle number)는 문제에서 보여지듯이 입니다. 그리고 가우스는 최대 3개 삼각수의 합으로 모든 자연수를 표현할 수 있다고 증명하였습니다. 그리고 이 이론은 유레카 이론으로 알려져왔다고 합니다. 문제는 어떠한 수가 주어졌을 때, 이 수가 3개의 삼각수로 표현이 가능한지 알아보고 표현이 가능하면 1, 가능하지 않다면 0을 출력하는 것입니다. 제가 접근한 방식은 문제에서 주어지는 입력 K는 3에서 1000사이의 값이기 때문에 1000 이상의 값은 무의미 하다는 것입니다. 즉, 전 1에서부터 1000사이의 삼각수를 구하면 되고 그 수들을 가지고 가능한 케이스를 검사하..

Competitve Programming 2018. 5. 13. 15:09
백준(BOJ) 13235번 팰린드롬 (Palindromes)

안녕하세요? 오늘은 백준 알고리즘 사이트에 있는 문제 중 하나인 13235번 팰린드롬을 풀어보겠습니다. 문제 번호가 13231 이었으면 더 의미가 있었을 텐데 아쉽습니다... 하하... 농담은 이정도로 하고 본격적으로 문제를 풀어보겠습니다. 팰린드롬이란 문제에서 설명하듯이 뒤로 읽으나 앞으로 읽으나 똑같은 단어를 말하는데요, 이는 Mirror alphabet과 혼동할 수 있지만 정확히는 다른 용어입니다. 위키백과에서는 이렇게 설명하고 있네요 "회문(回文) 또는 팰린드롬(palindrome)은 거꾸로 읽어도 제대로 읽는 것과 같은 문장이나 낱말이다. 보통 낱말 사이에 있는 띄어쓰기나 문장 부호는 무시한다." 따라서 주어진 문장이 팰린드롬이면 true를 아니면 false를 출력하는 문제입니다. 제가 이 문제..

Competitve Programming 2018. 5. 13. 00:46
백준(BOJ)14500번 테트로미노

안녕하세요? 오늘은 백준 알고리즘 사이트에 게시된 문제 중 하나인 14500번 테트로미노 문제를 풀어보겠습니다. 먼저 문제를 읽어보겠습니다. 이 문제를 처음 봤을 때, 어릴 적 추억이 떠올랐습니다. 테트리스는 지금까지고 인기있는 게임인데요, 다음에 테트리스 게임과 봇을 만들어서 구현 방법과 알고리즘에 대해 포스팅하도록 하겠습니다. 간단하게 문제의 요지를 적는다면, 입력으로 NxM의 여러 숫자가 포진되어 있는 맵이 주어지고 각각의 테트로미노가 맵에 놓였을 때 생기는 테트로미노와 맵과의 교집합의 최대값을 구하라는 문제입니다. 제가 사용한 알고리즘은 다음과 같습니다. 이 문제가 다소 까다로운 이유는 이 테트로미노가 대칭과 회전이 가능하다는 것입니다. 전 이 문제를 모든 테트로미노의 모양을 맵에 대입해서 결과값..

Competitve Programming 2018. 5. 12. 20:25
Concurrency vs Parallelism

오늘은 동시성(Concurrency)과 병렬성(Parallelism)의 개념적 차이를 알아보겠습니다. 겉으로 보면 이 두 단어는 모두 뭔가가 동시에, 같이 일어나는 성질을 뜻한다는 것을 알 수 있습니다. 그렇다면 이 둘은 같은 의미를 가진 단어 일까요? 아닙니다. 동시성과 병렬성은 어느정도 관련은 있지만 본질적으로 같지 않습니다. 하드웨어적 관점에서는 이 둘을 어느정도 의미적으로 혼용해서 쓰는 경우도 종종 있습니다만, 소프트웨어적 관점에서는 엄연히 이 둘을 구분 짓습니다. 그렇다면 어떤 차이가 있을까요? 예를 한번 들어보겠습니다. 연구원 Bennett은 연구를 위한 툴을 제작하는 도중에 예상치 못한 memory leak이 발생하여 매우 난감해 하고 있었습니다. 그렇게 힘든 와중에 배가 고파졌습니다. Be..

운영체제 2018. 5. 2. 00:09
재귀 함수) 재귀함수의 특성에 대해 알아보기

안녕하세요? 오늘은 재귀함수에 대해 알아보는 시간을 갖도록 하겠습니다. 재귀(recursion)란? 사전적 정의를 보면 다음과 같습니다. : 원래의 자리로 되돌아가거나 되돌아옴.(네이버 국어사전) 원래의 자리로 되돌아가거나 되돌아온다. 무슨 말일까요? 그리고 그런 특성을 가진 함수를 재귀함수라고 하는데 뭔가 알것 같기도 하고... 하나하나씩 살펴보겠습니다. void recursion(){ recursion() } 코드를 이렇게 짜놓으면 어떻게 될까요? 코드의 순서를 보며 프로그램의 흐름을 보겠습니다. 먼저 [line 1] 에서 recursion()함수가 시작합니다. 그리고 [line 2]에서 또 다시 recursion()함수가 호출됩니다. 그러면 또 다시 코드의 흐름은 [line 1]에서 부터 시작하게 ..

자료구조와 알고리즘 2018. 4. 30. 23:45
지렁이 Bot 만들기 1) 포물선을 그리며 움직이기

오늘 하고자 하는 내용좌표 평면에 어떤 물체가 존재한다고 가정하겠습니다. 이때 제가 하고 싶은 건 그 물체가 해당 좌표로 이동을 해야하는데 , 단순히 그 방향으로 direct로 이동하는 것이 아닌 포물선을 그리며 이동시키려 합니다. 제가 생각한 방법은 이렇습니다.현재 각도(θ1)와 목표 각도(θ2)를 구하여 θ1을 θ2 방향으로 조금씩 이동하는 것입니다. 좀 더 이해하기 쉽게 단계를 visualization 해보겠습니다. [t] [t+1] [t+2] 이러한 움직임을 구현하기 위해 식을 다음과 같이 세웠습니다. 현재 각도(θt)에서 일정량의 상수(α)를 더하여 이동할 각도를 구합니다(θt+1). 그리고 상수(α)는 목표 각도(θd)를 기반으로 구합니다.이때 상수(α)값에 따라 물체의 동선을 결정합니다. 그..

게임 프로그래밍/Unity 2018. 4. 29. 22:23
이전 1 2 3 다음
이전 다음
공지사항
  • 연구실이 개설되었습니다.
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
  • 14500
  • Pigeon hole principle
  • 백준 1463
  • 백준
  • 1로 만들기
  • 유레카 이론
  • Functional Programming
  • 병렬성
  • UC Irvine
  • 머신러닝 데이터셋
  • 내림차순
  • c++
  • U-Net
  • 비둘기집 원리
  • 11403
  • BOJ
  • Dynamic Programming
  • 하스켈 설치
  • discrete mathematics
  • 테트로미노
  • 람다식
  • Multi Programming
  • 10448
  • 깊이 우선 탐색
  • 재귀함수
  • kaggle
  • 람다
  • 13235
  • 게임 봇
  • 함수형 프로그래밍
more
«   2025/06   »
일 월 화 수 목 금 토
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

Blog is powered by Tistory / Designed by Tistory

티스토리툴바