hljs.initHighlightingOnLoad();

전체 글

Unity

[Unity 2D] 장애물과 겹치지 않게 랜덤하게 움직이기

기능 설명NPC가 배경에서 랜덤하게 움직이는 기능을 필요로 하였다.이때, NPC가 움직일 때, 장애물과 겹치면 안 된다. 구현 알고리즘랜덤한 위치를 선정한다.그 위치에서 Physics2D.OverlapCircle을 사용하여 장애물의 반경에 속해 있는지 확인한다. (이때 장애물 레이어를 따로 설정해 준다.)만약, 그 위치가 장애물 위면 다시 랜덤한 위치를 선택한다. 만약, 그 위치가 정상 위치라면 목표 경로에 장애물이 있는지 한 번 더 체크한다.그래도 정상 위치라면 그 좌표로 이동하고, 장애물이 있는 경로라면 다시 랜덤한 위치를 선택한다.AnimalController.cs더보기using System.Collections;using UnityEngine;public class AnimalController ..

Unity

[Unity 2D]Cinemachine을 이용하여 화면 드래그 시 카메라 이동시키기

카메라 구현에 있어서 Cinemachine을 선택한 이유기본 카메라를 사용하게 되면 직접 스크립트를 짜서 기능을 구현해야 하는 경우가 많다. 구현해야 할 기능들이 많아지면 많아질수록 이는 부담으로 다가온다.하지만 Cinemachine을 사용하면 Cinemachine이 제공하는 강력한 기능들을 손쉽게 프로젝트에 적용할 수 있다. 구현해야 하는 것2D 모바일 환경에서 드래그로 맵을 둘러볼 수 있는 기능.이때 카메라는 특정 구역 바깥으로 나가지 않아야 한다. 구현 방법1. UI로 DragPanel 만들고, 스크립트 짜기UI로 DragPanel을 만들어 터치할 부분에 오브젝트가 있어도 UI의 특성을 활용해 드래그가 가능하게 했다.또한 DragPanel 밑 오브젝트를 클릭해야 할 경우도 있으므로 Canvas의 G..

알고리즘

[C++] Boj 18808 스티커 붙이기

문제 링크18808 스티커 붙이기접근최대한 문제에서 제시한 대로 구현하려고 노력했다. 그러나 답은 맞았지만 머릿속에서 꼬여버린 탓에 코드를 덕지덕지 짠 것 같다. 그래서 시간복잡도가 그렇게 좋지 못한 결과가 나왔다. 그래서 바킹독님 블로그에 제시된 간결한 코드로 다시 복습해 보려 한다. 앞으로는 먼저 계획을 세우고 코드를 짜는 습관을 길러야겠다. 알고리즘노트북에 스티커를 붙일 수 있는지 확인한다.만약, 스티커를 붙일 수 있다면 스티커를 붙인다.만약, 스티커를 붙일 수 없다면 스티커를 회전한다.모든 방향으로 회전하여도 스티커를 붙일 수 없다면 그 스티커를 버린다.이를 스티커를 다 쓸 때까지 반복한다.코드#include using namespace std;int n, m, k;int note[42][42];..

etc

Github Desktop Commit 시 한글 깨짐 이슈

원활한 협업을 위해 주석을 달았는데, Github Desktop으로 Commit 시에 한글 깨짐 현상이 있었다.해결 방법을 공유하고자 한다. 1. 파일의 encoding 방식 변경 파일 > 다른 이름으로 저장 > 인코딩하여 저장 > UTF-8 선택 2. git config 파일 수정 리포지토리 폴더 안 .git(숨김 폴더) > config 파일을 연다. 위와 같은 코드를 입력하고 저장한다.이렇게 되면, Commit한 Github 리포지토리에서는 문제가 없으나 Github Desktop에서는 여전히 한글이 깨져 있다. 3. Visual Studio 설정 변경도구 > 옵션에 들어간다. 자신이 사용하는 언어 > 코드 스타일 > .editorconfig 파일 생성을 누른다. 위 박스 안 코드를  .editorc..

알고리즘

[C++] Boj 15683 감시

문제 링크15686 감시접근(1)int cctvCases[5][4] ={ { 0, 0, 0, 1 }, { 0, 0, 1, 1 }, { 0, 0, 1, 1 }, { 0, 1, 1, 1 }, { 1, 1, 1, 1 },}; {위, 아래, 왼, 오른}순(바라보는 방향)으로 boolean 배열 규칙을 임의로 지정하고  CCTV의 모든 방향을 손으로 적어 봤더니 규칙을 찾을 수 있었다. 예를 들면 CCTV 1은 {1, 0, 0, 0}, {0, 1, 0, 0}, {0, 0, 1, 0}, {0, 0, 0, 1}으로 4C1의 경우의 수와 같다고 생각했다.마찬가지로 CCTV2, CCTV3, CCTV4, CCTV5도 4Cn이라고 가정하고 문제를 풀이하였다.이 과정에 next_permutation..

알고리즘

[C++] Boj 16987 계란으로 계란치기

문제 링크16987 계란으로 계란치기 접근 및 알고리즘문제를 이해하는 것만 해도 시간이 들었다. 나의 집중력 이슈 ㅜㅜ문제 내용을 요약하자면 다음과 같다.1. 입력으로 받은 계란 중 첫번째 계란을 손에 쥔다.2. 남은 계란 중에 하나를 손에 쥔 계란으로 친다. (손에 든 계란이 깨졌거나, 현재 계란 말고 다른 계란이 전부 깨져 있으면 치지 않는다.)3. 이때, 손에 있는 계란이 깨질 수도 있고, 다른 계란이 깨질 수도 있고, 둘 다 깨질 수도 있다.4. 아무튼 손에 있는 계란이 깨졌든 말든 한번 쳤으면 손에 있는 계란을 다시 제자리에 놓는다.5. 그 다음에, 손에 있었던 계란의 다음 차례 계란을 손에 쥔다.6. 2 - 5를 반복하고, 만약 방금 손에 쥐었던 계란이 마지막 위치의 계란이면 종료한다. 첫번째..

알고리즘

[C++] Boj 1941 소문난 칠공주

문제 링크1941 소문난 칠공주 접근 문제를 풀다가 어떻게 풀어야 할지 긴가민가해서 알고리즘 분류 항목을 열어 훔쳐보았다...열심히 생각해 본 결과는 아래와 같다.25C7을 구한다.7명이 접해 있는지 확인한다.7명이 접해 있다면, 이다솜파의 수가 4 이상일 때, ans를 카운트한다.하지만 구현에는 실패하였다. 바킹독 님의 답안에는 next_permutation를 사용한 풀이가 있었지만, 나는 next_permutation에 대한 이해가 부족했다.next_permutation에 대한 공부를 더 하고 이 문제를 이해해 보려 한다. 전체 코드#include #include #include using namespace std;// 1. 25C7을 구함.// 2. 7명이 접해있는지 확인// 3. 이다솜파의 수 확..

C++

next_permutation의 원리, 활용 (순열, 조합)

1. next_permutation 함수란?현재 순열(permutation)에서 다음 사전순 순열을 생성하는 함수이다. 이때, 순열 자체를 반환하는 것이 아니라, 원본 데이터를 직접 변경한다.next_permutation을 호출할 때마다 컨테이너(vector, string, array 등)의 요소가 다음 사전순 순열로 변경된다.모든 순열을 생성할 수 있다. next_permutation의 반환값은 bool 값이다.다음으로 생성할 순열이 존재하면 true를 반환하며, 다음으로 생성할 순열이 없다면 false를 반환한다.do-while문을 이용해 깔끔하게 사용할 수 있다. C++의 next_permutation은 algorithm 헤더에 포함되어 있다.  2. 기본 사용 예제 (순열)#include #inc..

(ꐦ •᷄ࡇ•᷅)
모르겠으면 외워