Happy Coding

과제용 블로그

전체 글 6

[AI] Diffusion의 기초

* Diffusion이 무엇인지도 모르는 사람들을 위해!* 이글에서는 VAE, U-Net, stable diffusion, DDPM의 자세한 수식등에 대하여 자세히 다루지 않습니다. Diffusion, ai에 관심이 있는 사람이라면 한두번 정도 들어봤을법한 단어다.Diffusion의 사전적 의미는 the spreading of something more widely.즉 확산이다. 그림을 그리는 것과 확산이 무슨 관련이 있을까?연구자들은 그냥 그림을 그려내는 것보다 픽셀을 조금씩 바꿔가며 이를 목표하고자 하는 그림에 가까워지도록 점진적으로 바꿔가는 방법이 더 효율적일것이라고 생각했고, 이를 수학적으로 증명해냈다. 그렇다면 디퓨전은 어떤 원리일까?먼저, 디퓨전 모델은 노이즈에서 출발해 단계적으로 노이즈를 ..

카테고리 없음 2025.08.02

c++로 리듬게임 만들기

[c++로 리듬게임 만들기] 이전 글에서 나는 c++로 총게임을 만들거라는 대규모 프로젝트를 암시했었다. 그리고 실제로 계획까지 짜고, 일정부분 만들었다. 간략하게 말하자면 초기계획 - 1차 대규모 변경 - 2차 대규모 변경(리듬게임) 의 과정으로 프로젝트가 진행되었다. 이렇게 맵, 플레이어, 몬스터, 아이템, 메뉴, 정보창 으로 크게 6가지 분류로 나눠서 기획을 하였다. 그리고 한달안에 제작이 불가능하다고 판단하여 곧바로 1차 수정에 들어갔다. 이와 같이 크게 여러개를 없애고 표시하진 않았지만 추가로 자잘자잘하게 사라진 기능들이 많다. 이렇게 총게임 제작을 시작했다. 기본적으로 class 를 이용해서 play, monster, weapon의 객체를 생성하고 제대로된 제작을 시작하려했다. class We..

카테고리 없음 2023.10.28

HTML, CSS, JavaScript

학교 동아리에서 진행하는 프로젝트로 인해 웹개발 언어인 html, css, js 를 공부하게 되었다. 처음에 시작할 땐 매우 가벼운 마음으로 시작했다. 왜냐면 "html은 프로그래밍 언어가 아니다" 라는 말을 너무나도 많이 들었기 때문이다. 기대와 같이 공부 초기엔 다양한 태그들을 배우면서 쉽고 간단하다고 생각했다. 하지만 공부하면 공부할수록 다른언어에 비해 쉬울 순 있어도 절대 간단하지는 않다는 걸 느꼈다. layout부터 그룹으로 묶어주는 name과 class 기능, css와 연결되며 더욱 복잡해지는 것을 보며 매우 쳬계적으로 짜야하는 언어라는 것을 느꼈다. 또, js는 내가 지금까지 c, c++, dart, python, java 등 다양한 언어를 접했지만 가장 특이했다. 그래서 난 이 블로그를 통..

카테고리 없음 2023.09.30

Dart 문법 정리 (데이터 타입 연산자, 생성자, 함수, 제어문, 예외처리, 비동기처리, 입출력) + 가위바위보 게임

Dart 문법 정리 (데이터 타입 연산자, 생성자, 함수, 제어문, 예외처리, 비동기처리, 입출력) + 가위바위보 게임 오늘은 내가 Dart 언어를 공부하면서 배운 Dart 문법에 대해 정리해보는 글을 작성하려 한다. 참고) Dart 언어란 구글에서 개발한 객체지향 언어로서 Flutter 라는 크로스플랫폼 앱 개발 프레임워크에 사용되는 언어이다. 이 글에서는 전체적인 데이터 타입(자료형 + Null Safety), 연산자, 간단한 생성자(class), 함수, 제어문(반복문, 조건문), 예외처리, 그리고 비동기 처리와 입출력까지에 대해 마치 문법 정리 노트처럼 다룬다. 구체적인 설명을 다루지는 않지만 각각 예제 코드와 주석을 포함하고 있으니 이해하는데에는 도움이 될것같다. 추가적으로 입출력과 단순한 제어문..

카테고리 없음 2023.08.31

수학 계산기(이차방정식 ~ 미적분)

지난번 글에서는 항상 궁금해서 언제 한번 공부해야지 했던 것을 주제로 그에 대해 공부하고 작성한 코드로 글을 작성했다. 이번엔 1학기, 그리고 방학 동안 수학공부를 하면서 불편했던 것을 모두 컴퓨터가 계산해 주도록 하는 계산기를 만들어 봤다. 예전에도 사칙연산에 관련된 간단한 계산기 프로그램을 c언어로 만들어 본 적이 있기에 형식과 틀은 쉽게 잡을 수 있었다. 프로그램을 시작하면 메뉴 넘버와 함께 메뉴 이름이 나오고, 내가 원하는 숫자를 입력하면 해당 숫자의 메뉴가 실행되는 것이다. 이렇게 말이다. 이 사진을 보면 알겠지만 내가 이번 계산기에 담을 계산 내용들은 다음과 같다 등사수열 & 등비수열 계산기 순열 & 조합 계산기 이차방정식의 일반 해 계산기 삼각형 넓이 계산기 방정식 미분 계산기 방정식 적분 ..

카테고리 없음 2023.07.30

(연속된/연속되지 않은) 최대 부분합 구하기 {O(n^3), O(n^2), O(n)}

(연속된/연속되지 않은) 최대 부분합 구하기 {O(n^3), O(n^2), O(n)} 대회에도 나갔을때도, 백준이나 codeup 에서 풀문제를 찾아볼 때도 항상 내 눈에 보였지만 푸는 방법이 전혀 감이 잡히지 않아 그냥 넘어갔던 문제들이 있다. 바로 "연속된 최대 부분합"을 구하는 문제였다. "연속된 최대 부분합"이란 숫자들로 이뤄진 1차원 배열에서 이어져 있는 특정 부분의 합이 최대가 되는 부분을 말한다. 즉, -9 4 -2 8 -2 4 9 -8 이라는 배열이 있다면 이때 "연속된 최대 부분합"은 4 -2 8 -2 4 9 가 된다. 1. 연속으로 이어져 있고 2. 합이 최대가 되기 때문이다. 그래서 이때의 합을 구하라고 한다면 4-2+8-2+4+9 = 21 이된다. 입력값이 4, -2, 8, -2, 4..

algorithm 2023.06.27