전체 글 (844) 썸네일형 리스트형 [백준 11931번] 수 정렬하기 4 (C++) 문제링크 : https://www.acmicpc.net/problem/11931 11931번: 수 정렬하기 4 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net #include using namespace std; typedef long long ll; typedef pair pii; const int MAX = 987654321; int N, arr[1000001]; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> N; for(int i=0; i> arr[i]; .. Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 3-26 Const 멤버 함수 블루프린트에 순수함수가 있었던 것처럼, C++에도 유사한 기능으로 Const 함수가 존재한다. 순수함수는 실행핀의 필요성을 없애는 것이었지만, Const의 경우 해당 클래스의 상태를 수정할 수 없게 만든다. 우리가 전에 작성했던 ShouldPlatformReturn 함수의 경우를 살펴보자. 해당 함수안에 있는 MoveDistance 변수 같은 경우 수정할 필요도 없고, 해서도 안된다. 해당 함수는 MoveDistance의 값을 초기화하거나 변경하는 것이 아닌, 단순 체크용 함수이기 때문이다. 따라서 Const를 붙여주는 것이 좋다. Const의 경우 선언부와 구현부 위와 같이 붙여주어야 한다. 붙여주고 나면 GetDistanceMoved 함수에 오류가 발생한 것을 볼 수 있다. 이는.. Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 3-25 반환문 저번 강의에 이어서 추가적으로 함수로 작성하면 좋아보이는 내용이 아직 남아있다. 이번에는 기존 if 문에서 DistanceMoved > MoveDistance 를 체크하는 부분과, DistanceMoved를 얻는 부분을 함수로 바꿔준다. 먼저 if 문의 경우 타입이 bool 이기 때문에 함수또한 bool 타입으로 선언해준다. 따라서 반환 타입이 없던 void 함수와 달리 해당 함수는 bool 타입을 반환하게 된다. 구현은 간단히 if 문에 있던 내용을 가져오면 된다. 대신 헤더 파일에 선언되어있는 MoveDistance와 달리 DistanceMove은 MovePlatform 함수에서 선언된 변수이기 때문에 다시 선언해줄 필요가 있다. 그러면 또 문제가 기존의 CurrentLocation또 추가적으.. Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 3-24 멤버 함수 코드를 더욱 알아보기 쉽게 정리하기 위하여 우리가 직접 함수를 만들어 줄 수 있다. 이러한 함수는 헤더에서 선언하며, cpp에서 구현을 하게된다. 선언을 하기에 앞서서 헤더 파일을 보면 public:, protected: 이 적혀있는 것을 볼 수 있다. 이러한 것들을 접근지정자라고 하며, 해당 접근지정자 아래에 적힌 내용들이 접근할 수 있는 권한을 나타낸다. public은 어디서든 접근이 가능하고, protected는 현재 클래스에 대해 상속받는 클래스에 한해서 접근이 가능하다. 추가로 private: 또한 존재하며, 이 경우 현재 클래스에서만 접근이 가능하다. 우리가 만든 기능들은 현재 클래스에서만 필요한 기능이므로, private: 로 옮겨준다. 지금 추가로 만들 함수또한 마찬가지이다. 이.. [백준 1449번] 수리공 항승 (C++) 문제링크 : https://www.acmicpc.net/problem/1449 1449번: 수리공 항승 첫째 줄에 물이 새는 곳의 개수 N과 테이프의 길이 L이 주어진다. 둘째 줄에는 물이 새는 곳의 위치가 주어진다. N과 L은 1,000보다 작거나 같은 자연수이고, 물이 새는 곳의 위치는 1,000보다 작거나 www.acmicpc.net #include using namespace std; typedef long long ll; typedef pair pii; const int MAX = 987654321; int L, N,arr[1001]; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> N >> L; for(int i=0; i> arr[.. Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 3-23 FString 로그 메시지로 디버깅 하는 방법을 익혔지만, 이는 간단한 변수에 대해서만이다. 복잡한 문자열이나 벡터를 문자로 표현하는 법 등은 특별한 포맷 지정자가 존재하지 않아 어떻게 해야하는지 아직 알지 못한다. 이는 문자열로 표현이 가능하며, FString으로 선언한다. 문자열에 대한 포맷 지정자는 %s이다. 여기서 전과 다른 점이 하나 있는데, 바로 문자열 변수 앞에 *을 작성한 것이다. 이는 언리얼의 UE_LOG에서 인수를 인자로 받아들이지 못해서 생긴 문제이며, 이에 변환 연산자 *이 필요하다. *을 붙여주면 위와 같이 문자열이 출력되는 모습을 확인할 수 있다. 해당 문자열 변수에는 동적 타입도 할당이 가능하다. GetName() 함수를 통해 현재 액터에 대한 이름을 가져와 할당이 가능하다. .. Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 3-22 출력 로그에 기록하기 여태까지 강의를 진행하면서 오류가 발생하거나, 계산한 값들이 의도한바에 맞게 출력하는지 직접 체크하고 싶을 수 있다. 이런 게임 디버깅 체크용으로 출력 로그에 기록하는 방법을 사용할 수 있다. 만약 확장 프로그램인 Unreal Engine 4 Snippets를 설치했다면 Vscode에서 ulog만 쳐도 자동으로 아래와 같은 코드가 입력된다. 다음 코드를 보면 인수를 3개 받는데, 차례대로 로그 카테고리, 얼마나 시급한지를 나타내는 로그 수준, 출력 메시지이다. 이제 컴파일하고 언리얼로 돌아가 하단의 출력 로그를 살펴보자. 보면 우리가 작성한 로그가 5개가 출력된 것을 볼 수 있다. 이는 현재 MovingPlatform2.cpp에 대해 메시지를 표기하는 것인데, 해당 cpp에 대한 액.. Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 3-21 GameMode 뷰포트에서 우클릭을 하면 여기에서 플레이라는 기능을 통하여 원하는 곳에서 플레이어를 스폰할 수 있다. 하지만 현 상태에서 게임 플레이를 누르면 캐릭터가 있는 위치에서만 플레이가 가능하다. 이는 언리얼에서는 우리가 어떤 캐릭터를 사용하고자 하는지 모르기 때문에 발생하는 문제이다. 이를 위해 게임모드 클래스를 사용하게 된다. 게임모드란 기본적으로 레벨에 들어가서 게임 규칙을 관리하는 액터이다. 누가 어디에 스폰해야 하는지, 플레이어에게 어떤 클래스를 아용하는지, 그 밖에 게임 작동 방식을 의미한다. 간단히 말해 특정 게임 또는 특정 경기의 규칙과 같다. 게임모드는 좌측 상단에서 설정할 수 있다. 프로젝트 세팅에 있는 GameMode 항목은 프로젝트 전체에 대한 설정으로 프로젝트에서 생성한 모.. 이전 1 ··· 41 42 43 44 45 46 47 ··· 106 다음