프로그래밍 공부

2024/01 107

카테고리 설명
  • 3.5.3 커스텀 익셉션의 활용 C++을 이용하더라도 익셉션을 전혀 사용하지 않을 수 있다. C++의 기능 중 어떤 부분에서도 익셈션의 사용을 강제하지 않는다. 익셉션 없이도 전통적인 에러 플래그나 nullptr 리턴을 통해 에러 처리 메커니즘을 구현할 수 있다. 자체적으로 익셉션을 구현하여 클래스를 정의해서 특정 환경의 필요에 잘 맞춰진 에러 처리 메커니즘을 만들 수 있기 때문에, 익셉션 을 사용하는걸 추천한다. 예를들어 웹 브라우저 프로그램 이라면 어떤 웹 페이지가 에러를 발생시켰을 때 자체적인 익셉션 클래스를 만들어서 에러를 발생시킨 URL이나 네트워크 상태에 대한 정보를 첨부할 수도 있다.

  • 3.5.2 참조형으로 포인터 대체 전통적으로 C++프로그래머는 C를 먼저 배운 후 C++를 배운다. C에서는 포인터만 복제가 아닌 참조형으로 데이터를 넘긴다. C++에서도 여전히 포인터가 필요할 때가 있지만 많은 경우 참조형으로 대체할 수 있다. C를 먼저 배운 사람이라면 참조형을 지원하기 위해 특별히 언어 차원에서 추가된 기능은 없을거로 생각할 수도 있다. 단지 포인터 연산을 하는 새로운 문법이 추가되었을 뿐이라고 볼 수도 있다. 포인터 대신 참조형을 이용하면 몇 가지 좋은 점이 있다. 참조형은 포인터보다 안전하다. 메모리 주소를 직접 다루지 않기 때문에 nullptr이 될 수 없다. 코드의 스타일이 더 좋아진다. 스택변수 와 문법이 같아서 *나 &같은 심벌을 이용하지 않아도 된다. 참조형은 사용하기도..

  • 언리얼 충돌처리를 더 깊게 알아보자. 전에 만들었던 것은 충돌했을 시, String이 출력되게 만들었다. 이번에는 충돌 시 Light가 켜지고, 충돌상태가 아닐 시 Light가 꺼지게 할 것 이다. 객체 생성 위와같이 ToggleLIght를 생성하고, 객체를 정의해보자. 객체는 위와같이 PointLight와 String을 가지고, BoxCollider로 동작할 것 이다. 이밴트 그래프 이밴트 그래프는, 전과 유사하게, 생성된 PointLight를 타깃으로 지정하고, 처음에 꺼준뒤, Color값을 정의 해준다. 그리고, OnComponent Begin Overlap을 통해, 임의의 Overlap객체가 내부에 들어왔을 때, 충돌된 객체의 이름을 출력하게 하였다. 그리고, ActorBeginOverlap 이벤..

  • 문제 설명 여행을 마치고 홍 박사님의 연구실에 도착했다. 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했다. 홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분한다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타낸다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있다. 첫 번째(3번), 두 번째(1번) 폰켓몬을 선택 첫 번째(3번), 세 번째(2번) 폰켓몬을 선택 첫 번째(3번), 네 번째(3번) 폰켓몬을 선택 두 번..

  • 문제 설명 n개의 노드가 있는 그래프가 있다. 각 노드는 1부터 n까지 번호가 적혀있다. 1번 노드에서 가장 멀리 떨어진 노드의 갯수를 구하려고 한다. 가장 멀리 떨어진 노드란 최단경로로 이동했을 때 간선의 개수가 가장 많은 노드들을 의미한다. 노드의 개수 n, 간선에 대한 정보가 담긴 2차원 배열 vertex가 매개변수로 주어질 때, 1번 노드로부터 가장 멀리 떨어진 노드가 몇 개인지를 return 하도록 solution 함수를 작성하라. 제한사항 노드의 개수 n은 2 이상 20,000 이하입니다. 간선은 양방향이며 총 1개 이상 50,000개 이하의 간선이 있습니다. (vertex 배열 각 행 [a, b]는 a번 노드와 b번 노드 사이에 간선이 있다는 의미) 입출력 예 n vertex return 6..

  • 상태머신을 통해 점프 애니메이션을 적용해보자. ABP에 들어가서 AnimGraph를 수정하자. 상태머신 내부로 들어가면 위와같은 창에서 에니메이션을 수정할 수 있게 되는데, 애니메이션을 드래그해서 블럭을 만들고,블럭의 외부에 드래그해서 위와같이 연결한다. 위의 좌우 교차된 화살표는 IF문이다. 어떠한 조건에 해당되면 화살표 방향으로 애니메이션을 전환해준다. 점프에 사용될 데이터는 InAir인지 아닌지 확인하는 bool타입 변수를 사용한다. Bool타입 변수 제작 위와같이 현재 담당된 Player에 대해 InAir를 가져올 수 있다. 만약, 떨어지고 있다면, 현재 객채가 공중에 있다는 의미 임으로, InAir를 True로 전환하고, 아니라면 False로 변환해준다. 해당 Valid는 블루프린트가 업데이트 ..