프로그래밍 공부

프로그래밍 700

카테고리 설명
  • 문제 설명 도넛 모양 그래프, 막대 모양 그래프, 8자 모양 그래프들이 있습니다. 이 그래프들은 1개 이상의 정점과, 정점들을 연결하는 단방향 간선으로 이루어져 있습니다. 크기가 n인 도넛 모양 그래프는 n개의 정점과 n개의 간선이 있습니다. 도넛 모양 그래프의 아무 한 정점에서 출발해 이용한 적 없는 간선을 계속 따라가면 나머지 n-1개의 정점들을 한 번씩 방문한 뒤 원래 출발했던 정점으로 돌아오게 됩니다. 도넛 모양 그래프의 형태는 다음과 같습니다. 크기가 n인 막대 모양 그래프는 n개의 정점과 n-1개의 간선이 있습니다. 막대 모양 그래프는 임의의 한 정점에서 출발해 간선을 계속 따라가면 나머지 n-1개의 정점을 한 번씩 방문하게 되는 정점이 단 하나 존재합니다. 막대 모양 그래프의 형태는 다음과 ..

  • 10.3 타입과 캐스팅 우리는 C++의 기본 타입에 대해 알아보았고, 커스텀 타입을 정의하는 방법을 배웠다. 이번에는 typedef, 함수 포인터에 대한 typedef, 타입에일리어스, 그리고 캐스팅 같은 타입과 관련된 까다로운 부분을 살펴본다. 10.3.1 typedef typedef를 이용하면 새롭게 타입을 만들지 않고, 이미 정의된 타입에 또 다른 이름을 부여할 수 있다. typedef로 어떤 타입에 대한 별명을 만든다고 생각해도 된다. 다음 코드는 int* 타입에 대해 IntPtr이라는 새로운 이름을 부여한다. typedef int* IntPtr; 이렇게 새롭게 부여된 타입 이름으로 변수를 선언할 수 있다. 다음의 두 변수 선언은 모두 허용된다. int* p1; IntPtr p2; typedef로..

  • 10.2 키워드 혼동 const와 static은 C++의 키워드 중에서 혼란을 가장 많이 일으킨다. 두 키워드 모두 몇 가지 서로 다른 의미가 있는데 각 사용 방식에 따른 미묘한 부분을 꼭 이해하고 넘어가야 한다. 10.2.1 const 키워드 const는 constant의 축약형으로 무언가 절대 변경되지 말아야 할 것을 지정한다. const로 표시된 변수는 컴파일러에 의해 모니터링되어 변경 시도 시 에러를 발생시킨다. 더불어서 컴파일러가 코드를 최적화할 때 해당 변수가 변경되지 않는다는 사실을 참조하여 더 나은 효율적인 코드를 만들어낼 수도 있다. const키워드의 사용처는 두 부분으로 나눌 수 있다. 하나는 변수나 파라미터고 다른 하나는 메서드다. 10.2.1.1 const변수와 const파라미터 변..

  • 문제 설명 현대모비스는 우수한 SW 인재 채용을 위해 상시로 채용 설명회를 진행하고 있습니다. 채용 설명회에서는 채용과 관련된 상담을 원하는 참가자에게 멘토와 1:1로 상담할 수 있는 기회를 제공합니다. 채용 설명회에는 멘토 n명이 있으며, 1~k번으로 분류되는 상담 유형이 있습니다. 각 멘토는 k개의 상담 유형 중 하나만 담당할 수 있습니다. 멘토는 자신이 담당하는 유형의 상담만 가능하며, 다른 유형의 상담은 불가능합니다. 멘토는 동시에 참가자 한 명과만 상담 가능하며, 상담 시간은 정확히 참가자가 요청한 시간만큼 걸립니다. 참가자가 상담 요청을 하면 아래와 같은 규칙대로 상담을 진행합니다. 상담을 원하는 참가자가 상담 요청을 했을 때, 참가자의 상담 유형을 담당하는 멘토 중 상담 중이 아닌 멘토와 상..

  • 10. C++의 까다롭고 유별난 부분들 C++언어에는 까다로운 문법이나 특이한 의미를 가지는 부분이 많다. 이런 부분이 유별나기는 하지만 C++프로그래머로서 계속 적응하다 보면 어느새 자연스럽게 느껴지기 시작한다. 하지만 어떤 부분은 계속해서 혼란을 야기하기도 한다. 속 시원하게 설명해주는 책이 없거나 자꾸 잊어버려서 다시 찾아봐야 한다거나 둘 중 하나 또는 둘 다가 원인일 것이다. 이 장에서는 가장 끈질기게 프로그래머를 괴롭히는 C++의 까다롭고 유별난 부분을 명쾌하게 설명함으로써 반복되는 혼란을 줄여보고자 한다. 10.1 참조형 전문 개발자가 작성한 C++코드에서는 참조형이 광범위하게 사용된다. 참조형의 정체가 무엇이고, 그 행동 방식은 어떤지 이해하면 큰 도움이 된다. C++에서 참조(referen..

  • 문제 설명 전무로 승진한 라이언은 기분이 너무 좋아 프렌즈를 이끌고 특별 휴가를 가기로 했다. 내친김에 여행 계획까지 구상하던 라이언은 재미있는 게임을 생각해냈고 역시 전무로 승진할만한 인재라고 스스로에게 감탄했다. 라이언이 구상한(그리고 아마도 라이언만 즐거울만한) 게임은, 카카오 프렌즈를 두 팀으로 나누고, 각 팀이 같은 곳을 다른 순서로 방문하도록 해서 먼저 순회를 마친 팀이 승리하는 것이다. 그냥 지도를 주고 게임을 시작하면 재미가 덜해지므로, 라이언은 방문할 곳의 2차원 좌표 값을 구하고 각 장소를 이진트리의 노드가 되도록 구성한 후, 순회 방법을 힌트로 주어 각 팀이 스스로 경로를 찾도록 할 계획이다. 라이언은 아래와 같은 특별한 규칙으로 트리 노드들을 구성한다. 트리를 구성하는 모든 노드의 ..