프로그래밍 공부

프로그래밍 700

카테고리 설명
  • 3.6.1 중괄호 정렬 위치 코드 포맷 방식은 개발팀 내에 불화를 일으키는 가장 큰 논쟁거리다. 코드 포맷에 대해 원칙을 정해놓았다면, 굉장히 다행으로 생각해야 한다. 처음에는 그원칙이 마음에 들지 않을 수 있지만 코드 포맷 때문에 다른 프로그래머와 싸울 필요가 없다는 것이 얼마나 큰 이득인지 깨닫게 된다. 만약, 모든 프로그래머가 자신의 포멧으로 코드를 작성하고 있다면, 최대한 참고 수용해주는게 좋다. 나중에 보게 되겠지만 어떤 포멧 원칙은 정말 개인 취향 이상도 이하도 아니지만 프로그레머의 팀워크를 헤친다. 3.6.1 중괄호 정렬 위치 중괄호 블록의 정렬 위치 문제는 가장 흔한 포멧 논쟁거리이다. 중괄호 사용에는 몇가지 스타일이 있다. 현 작성문서에는 같은 라인에서 중괄호를 열고, 그 구문의 제일 앞..

  • 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..