[BOJ][C++] 7579번 앱
·
PS/백준 문제
안녕하세요.오늘은 백준 7579번: 앱(링크)  문제를 풀어보려고 합니다. 문제우리는 스마트폰을 사용하면서 여러 가지 앱(App)을 실행하게 된다. 대개의 경우 화면에 보이는 ‘실행 중’인 앱은 하나뿐이지만 보이지 않는 상태로 많은 앱이 '활성화'되어 있다. 앱들이 활성화 되어 있다는 것은 화면에 보이지 않더라도 메인 메모리에 직전의 상태가 기록되어 있는 것을 말한다. 현재 실행 중이 아니더라도 이렇게 메모리에 남겨두는 이유는 사용자가 이전에 실행하던 앱을 다시 불러올 때에 직전의 상태를 메인 메모리로부터 읽어 들여 실행 준비를 빠르게 마치기 위해서이다.하지만 스마트폰의 메모리는 제한적이기 때문에 한번이라도 실행했던 모든 앱을 활성화된 채로 메인 메모리에 남겨두다 보면 메모리 부족 상태가 오기 쉽다. 새..
[BOJ][C++] 25682번 체스판 다시 칠하기 2
·
PS/백준 문제
안녕하세요.오늘은 백준 25682번: 체스판 다시 칠하기 2(링크)  문제를 풀어보려고 합니다. 문제지민이는 자신의 저택에서 MN개의 단위 정사각형으로 나누어져 있는 M×N 크기의 보드를 찾았다. 어떤 정사각형은 검은색으로 칠해져 있고, 나머지는 흰색으로 칠해져 있다. 지민이는 이 보드를 잘라서 K×K 크기의 체스판으로 만들려고 한다.체스판은 검은색과 흰색이 번갈아서 칠해져 있어야 한다. 구체적으로, 각 칸이 검은색과 흰색 중 하나로 색칠되어 있고, 변을 공유하는 두 개의 사각형은 다른 색으로 칠해져 있어야 한다. 따라서 이 정의를 따르면 체스판을 색칠하는 경우는 두 가지뿐이다. 하나는 맨 왼쪽 위 칸이 흰색인 경우, 하나는 검은색인 경우이다.보드가 체스판처럼 칠해져 있다는 보장이 없어서, 지민이는 K×..
[BOJ][C++] 11049번 행렬 곱셈 순서
·
PS/백준 문제
안녕하세요.오늘은 백준 11049번: 행렬곱셈순서(링크)  문제를 풀어보려고 합니다. 문제크기가 N×M인 행렬 A와 M×K인 B를 곱할 때 필요한 곱셈 연산의 수는 총 N×M×K번이다. 행렬 N개를 곱하는데 필요한 곱셈 연산의 수는 행렬을 곱하는 순서에 따라 달라지게 된다.예를 들어, A의 크기가 5×3이고, B의 크기가 3×2, C의 크기가 2×6인 경우에 행렬의 곱 ABC를 구하는 경우를 생각해보자.AB를 먼저 곱하고 C를 곱하는 경우 (AB)C에 필요한 곱셈 연산의 수는 5×3×2 + 5×2×6 = 30 + 60 = 90번이다.BC를 먼저 곱하고 A를 곱하는 경우 A(BC)에 필요한 곱셈 연산의 수는 3×2×6 + 5×3×6 = 36 + 90 = 126번이다.같은 곱셈이지만, 곱셈을 하는 순서에 따..
[Doxygen] Doxygen To Drawio Converter
·
기타
Doxygen에서 생성한 .xml 파일을 drawio에서 사용 가능한 .drawio 파일로 변환해주는 프로그램입니다. ChatGPT를 적절히 사용, 파이썬 코드를 작성 및 수정하여 개발하였습니다. 각 클래스 스크립트 별로 하나 씩 클래스 다이어그램을 만들어 줍니다.클래스 간의 상속, 참조 관계 등은 표현해주지 않습니다. https://github.com/bubbletok/Doxygen2Drawio GitHub - bubbletok/Doxygen2DrawioContribute to bubbletok/Doxygen2Drawio development by creating an account on GitHub.github.com
[Unity] Button OnClick Event triggered twice
·
게임개발/Unity
유니티에서 버튼 UI를 쓰면 OnClick 이벤트에 메서드를 할당하여 사용하게 된다. 메서드는 보통 인스펙터 창에서 추가하거나, 혹은 스크립트에서 button.onClick.AddListener()를 사용하여 넣어준다. using System;using UnityEngine;using UnityEngine.UI;public class TestButton: MonoBehaviour{ Button button; void Awake() { button = GetComponent(); button.onClick.AddListener(OnClickButton); } void OnClickButton() { Debug.Log($"Button c..
[C#] Null-operator(?., ?[], ??, ??=)
·
언어/C#
1. Null-conditional operatorC#에서 제공하는 연산자 중 하나인 null-conditional operator은 참조하려는 정보가 null인지 미리 체크 후 이에 맞는 값을 반환한다. member 혹은 element에 접근할 때 사용가능 하며 각각 ?., ?[]로 쓸 수 있다. 1. 만약 a가 null이면, a?.x 혹은 a?[x]의 반환 값은 null이다.2. 만약 a가 null이 아니면, a.?x 혹은 a?[x]의 반환 값은 각각 a.x, a[x]와 동일하다. C#을 사용하는 유니티로 간단한 예제를 아래와 같이 작성해볼 수 있다.using UnityEngine;using UnityEngine.UI;public class Test : MonoBehaviour{ public G..
[UE5] Unreal Engine C++ API References
·
게임개발/Unreal Engine
언리얼에서 C++로 작업하다 보면 각 컴포넌트들에 대한 정보나 헤더 파일들이 필요한 경우가 있다. 일일히 다 찾기에는 귀찮기 때문에, 공식 레퍼런스에서 찾으면 쉽게 찾을 수 있다.https://dev.epicgames.com/documentation/en-us/unreal-engine/API 아래는 블루프린트 API References이다.https://dev.epicgames.com/documentation/en-us/unreal-engine/BlueprintAPI 또한, 전반적인 언리얼 개념들에 대한 문서도 있다.https://dev.epicgames.com/documentation/en-us/unreal-engine/unreal-engine-5-4-documentation
[C++] 컴파일 상수 constexpr
·
언어/C,C++
1. constexpr이란?constexpr은 C++11에서 도입된 키워드로, 컴파일 타임에 상수를 만들어 준다고 한다. const라는 키워드도 상수를 만들 수 있지만, constexpr은 변수 뿐만 아니라 함수, 클래스 생성자에도 적용이 가능하다! 또한, const 키워드는 컴파일 상수 / 런타임 상수 2가지로 작동 가능하지만 constexpr은 컴파일 상수로만 기능한다. 2. constexpr 변수#include int main(){ int n = 10; const int constN1 = 100; // OK, initialized at compile-time const int constN2 = n; // OK, intialized at run-time conste..
[UE5] Root Motion with custom mesh not working
·
게임개발/Unreal Engine
언리얼에서 파쿠르를 만드려고 하는데 아무리 해도 몽타주에서 Root Motion이 적용되지 않았다. 아래는 시도한 방법들이다. 1. 시퀀스에서 Root Motion 체크 확인시퀀스의 Root Motion, Force root lock을 체크되어있는지 확인한다.  Animation 창에서 Character - Animation - (Ignore)에서 Loop로이렇게 하면 root motion 체크된 상태에서 실제로 움직이는지 확인할 수 있다. 2. Animation BP애니메이션 BP에서 Root Motion을 사용하도록 설정했는지 확인한다. Animation BP -> Anim Preview Edit -> Root motionRoot Motion From Everything 혹은 Root Motion f..
디자인패턴 - 명령(Command)
·
게임개발
*아래 내용은 로버트 나이스트롬의 '게임 프로그래밍 패턴'을 토대로 정리한 글입니다.명령 패턴디자인 패턴 중 '명령패턴' 이라는 것이 있다. 책에서는 이를명령 패턴은 메서드 호출을 실체화한 것이다.라고 간결하게 정리했다.'실체화'라는 것은 무엇인가를 일급(First-class)로 만든다는 뜻이다. 그런데 '일급'은 또 무엇일까?일급 객체(first-class object)라고 부르는 것은 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 가리킨다.보통 함수에 인자로 넘기기, 수정하기, 변수에 대입하기와 같은 연산을 지원할 때 일급 객체라고 한다. - 위키백과- 파이썬이나 자바스크립트와 같은 언어에서 나타나는 특징으로, 일급 함수를 예로 들 수 있다.함수를 변수에 저장하거나, 함수를 매개변..