호우동의 개발일지

Today :

article thumbnail
[Unity 3D] #7 Directional Light 컴포넌트를 활용한 화면 구현 - Avoid Chess

이번에 할 구현은 저번 #6에 이은 동작에 관한 구현이다. #6 포스팅은 간단하게 빨간 볼을 크게 키운 뒤 위로 쏘는 액션을 구현한 것이다. 자세한 것은 밑의 링크를 참고하길 바란다. https://howudong.tistory.com/109 [Unity 3D] #6 애니메이션 상태 체크를 활용한 보스 스킬 구현 - Avoid Chess 스크립트 상에서 현재 애니메이션 상태를 받아오는 방법으로 가장 대표적인 것은 Animator 컴포넌트의 GetCurrentAnimatorStateInfo를 이용하는 방법이다. 여기서 가장 많이 보편적으로 사용하는 함수를 howudong.tistory.com 구현 목표 #6 포스팅에서 만들어뒀던 빨간 볼이 하늘로 올라간다. 그리고 하늘 전체가 먹구름으로 가득 차듯이 날씨가..

article thumbnail
[Unity 3D] #6 애니메이션 상태 체크를 활용한 보스 스킬 구현 - Avoid Chess

스크립트 상에서 현재 애니메이션 상태를 받아오는 방법으로 가장 대표적인 것은 Animator 컴포넌트의 GetCurrentAnimatorStateInfo를 이용하는 방법이다. 여기서 가장 많이 보편적으로 사용하는 함수를 설명하겠다. 해당 함수를 이용해서 아래 구현 목표에 해당되는 보스 스킬을 구현해 보겠다. 구현 목표 음.. 이상하게 보이긴 하지만 보스가 스프링처럼 몸을 움츠리는 애니메이션을 하고 그 사이에 빨간 구는 점점 커진다. 그리고 보스가 한 번에 튀어 오르면서 커진 빨간 구가 위로 발사되는 보스 패턴을 만들 것이다. 여기서 빨간 구가 커지는 타이밍과 보스 애니메이션이 연관됐고, 위로 발사되는 타이밍도 보스 애니메이션이 튀어 오르는 타이밍에 발사되어야 하기 때문에 스크립트상에서 이 타이밍을 맞춰줘..

[C++] 백준 18427 - 함께 블록 쌓기
Algorithm/BOJ 2022. 11. 22. 20:24

문제 이해 단계 https://www.acmicpc.net/problem/18427 N명의 학생이 각각 최대 M개의 블록을 가지고 있다. 학생들이 가지고 있는 블록은 전부 길이가 다르다. 예를 들어 1번 학생이 높이가 2,3,4인 블록을 가지고 있는 것처럼 모두 길이가 다르다. 높이 H가 주어지는데, N명의 학생이 순서대로 최대 1개를 사용해서 블록을 쌓을 때 정확히 높이 H가 될 수 있는 경우의 수를 구하는 문제 문제 접근 단계 일단 해당 문제의 키워드에 주목했다. 1. 최대 1개까지 쓸 수 있다.(안 써도 된다) 2. 1번 학생 ~N번까지 순차적으로 블록을 쌓는다. 1번 조건에서 해당 문제가 여러 가지 경우의 수로 나뉘는 것을 계산하는 문제라는 것을 알았고, 무엇보다도 2번째 조건에서 순서가 고정되어..

article thumbnail
[Git] SourceTree로 알아보는 Reset,Revert 그리고 Stash 개념
Git Study 2022. 11. 22. 13:11

Reset(되돌리기) 현재 브랜치의 최신 상태를 이전 커밋(원하는 커밋)으로 되돌리는 기능 3가지 모드 존재 Hard : 모든 작업 내 변경 사항을 버린다.(변경 사항을 다 삭제) Mixed : 원하는 커밋으로 되돌아가지만, 변경사항은 스테이지 아래에 둠 Soft : 원하는 커밋으로 되돌아가지만, 변경사항은 스테이지 위에 둠 Sourcetree Hard Reset 실습 add featB 커밋으로 되돌리기 위해 Reset 버튼을 클릭 3가지 모드 중 Hard 선택 로컬저장소는 적용됐지만 원격저장소 origin에는 아직 적용되지 않음 히스토리를 수정하는 작업이기 때문에 강제푸시를 사용해야 한다. 따라서 ForcePush를 체크한다. 정상적으로 원격저장소인 origin에도 적용된 것을 확인할 수 있다. Rev..

article thumbnail
배낭 문제(KnapSack Problem) 그림으로 쉽게 이해하기
Algorithm/Theory 2022. 11. 22. 00:53

배낭 알고리즘이란? 배낭 문제(Knapsack)는 n개의 물건과 배낭 있을 때, 각 물건에는 가치와 무게가 존재한다. 또한 각 물건은 1개씩만 있다. 배낭에는 담을 수 있는 최대 용량이 존재한다. 이러한 조건일 때, 배낭의 최대 용량을 초과하지 않으면서 배낭에 담을 수 있는 최대 가치의 합을 찾는 문제이다. 해당 그림은 배낭 문제의 예시이다. 지금부터 알고리즘을 설명할 때 해당 예시를 가지고 계속 설명하겠다. 0-1 KnapSack Problem 배낭 문제는 물건을 쪼갤 수 있는 Fraction Knaspack Problem과 물건을 쪼갤 수 없는 0-1 knapSack Problem으로 나뉜다. 이 글에서 설명하고자 하는 것은 0-1 KanpSack Problem이다. 대표적인 DP(Dynamic Pr..

article thumbnail
[C++] 백준/BOJ - 14719 : 빗물
Algorithm/BOJ 2022. 11. 21. 17:03

문제 이해 단계 https://www.acmicpc.net/problem/14719 2차원 맵이 주어진다. 이때 같은 층에 열로 가둬질 때 (위 그림처럼) 빗물을 담을 수 있다. 이 조건에서 2차원 맵의 크기가 주어지고, 각 행마다의 높이가 주어질 때 빗물의 총량을 구하는 문제이다. 문제 접근 단계 빗물의 총량을 구하기 위해서는 주어진 2차원 맵을 탐색 하면서 연산할 수 있는 일반화된 알고리즘이 필요하다고 생각했다. 그래서 일반화된 연산식을 만드는 것을 중점으로 생각했다. 첫 번째부터 쌓인 블록부터 탐색한다고 생각한다. 첫 번째 블록과 어떤 블록 사이에는 빗물이 쌓인다. 첫 번째 블록이 빗물을 담는 시작점이라고 생각(즉, 왼쪽 벽)하자. 그렇다면 첫 번째 블록과 쌍이 되는 오른쪽 벽은 어떻게 결정할까? ..

article thumbnail
[C++] 백준/BOJ - 15724 : 주지수
Algorithm/BOJ 2022. 11. 17. 17:55

문제 이해 단계 쉽게 말하면 2차원 표가 주어지고 그 표 안에는 사람 수가 적혀 있다. 그리고 입력으로 시작좌표(x, y)와 끝좌표(x, y)가 들어온다 그 사이를 사각형으로 둘러쌓을 때, 그 안에 들어오는 사람수의 총합을 구하는 문제이다. 문제 접근 단계 일단 이 문제를 읽자마자 너무 당연해서 당황했다. 그냥 당연히 좌표제한해서 하나하나씩 세면 되지 않을까? 근데 그러면 문제를 냈을 리가 없지, 하면서 문제 조건을 잘 읽어봤다. 영토 크기는 최대 1024X1024 = 즉 2^20으로 엄청나게 크다. 무엇보다도 계산을 한 번만 하는 게 아니다. 궁금해하는 영토의 개수 K가 최소 100,000개이기 때문에 일반적으로 개수를 세서 더하는 걸로는 딱 봐도 시간초과가 뜰 것 같다. 이전 계산의 결과를 저장하거나..

article thumbnail
[Git] Amend 와 Cherry-Pick 이해하고 SourceTree에서 사용해보기(MAC OS)
Git Study 2022. 11. 17. 15:43

Amend 가장 최근에 올린 커밋을 수정하는 명령어 로컬 저장소까지만 Push 했을 때와 원격저장소까지 Push 했을 때까지 방법이 다름 SourceTree 로컬 저장소까지만 Push 했을 때 README.md에 “8. 어멘드 추가”라는 텍스트를 추가해서 커밋메시지 없이 로컬저장소까지 커밋했다. 이를 다시 새로운 커밋로그를 만들지 않고 “8. 어멘드 추가”를 “8.add amend”로 바꾸고 커밋 메시지에 “어멘드 추가”를 넣고 싶다. 이때 amend를 사용할 수 있다. 방법은 간단하다. 일반적인 커밋과 마찬가지로 README.md에서 텍스트를 수정해 준 뒤 커밋메시지를 추가해 준다. 이후 커밋 이전에 Commit Options에 Amend last Commit을 눌러준다. 그럼 확인 문구가 뜨고, 확인..