목록전체 글 (140)
배고픈 개발자 이야기

문제 설명 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A, B, C는 모두 같은 네트워크 상에 있다고 할 수 있습니다. 컴퓨터의 개수 n, 연결에 대한 정보가 담긴 2차원 배열 computers가 매개변수로 주어질 때, 네트워크의 개수를 return 하도록 solution 함수를 작성하시오. 제한사항 컴퓨터의 개수 n은 1 이상 200 이하인 자연수입니다. 각 컴퓨터는 0부터 n-1인 정수로 표현합니다. i번 컴퓨터와 j번 컴퓨터가 연결되어 있으면 computers[..
1.스마트 포인터 Widget *getObject() => unique_ptr getObject(); 일반 포인터를 활용하여 프로그래밍을 할 경우 Exception, Return또는 끝나는 시점에 직접 메모리 해제을 해야함 하지만 스마트 포인터는 Exception, Return, 끝나는 시점 모두 메모리를 자동으로 해제함 2.무브 시맨틱 vector를 할당할 때 return by value로 Object를 복사하는 비용이 매우 많이 발생할 수 있음 모던 C++에서 무브 시맨틱을 사용하여 Object가 쓸데없이 복사되는 일을 한번에 날릴 수 있게 되었음 Object가 아무리 'move-enabled'가 아닐지라도, vector 템플릿 자체는 'move-enabled'이므로 함수로부터 Object를 위한 임..
template를 사용하여 프로그래밍 하는것을 일반화(Generic)프로그래밍이라고도 한다. template은 함수나 클래스를 만들 수 있는 틀 붕어빵틀 + 재료 = 붕어빵 template + 객체 = 함수 or 클래스 일반화(Generic) = 붕어빵틀을 만드는것과 같습니다. template을 사용하지 않고 여러 타입에 대해 동작하는 함수를 만들려면 각 타입마다 오버로딩을 해야한다는 단점이 있습니다. template은 특수화 : 특정 타입에 대해서 별빵 또는 다른 기능을 수행하도록 하는 것인데 특수화도 오버로딩과 비슷하게 이해할 수 있습니다. 특수화를 하려는 타입에 대해 template를 따로 하나 더 정의하면 오버로딩을 하지 않아도 됩니다. Template - 여러 타입을 사용하는 template 일..
A game for one player is played on a board consisting of N consecutive squares, numbered from 0 to N − 1. There is a number written on each square. A non-empty array A of N integers contains the numbers written on the squares. Moreover, some squares can be marked during the game. At the beginning of the game, there is a pebble on square number 0 and this is the only square on the board which is ..

전무로 승진한 라이언은 기분이 너무 좋아 프렌즈를 이끌고 특별 휴가를 가기로 했다. 내친김에 여행 계획까지 구상하던 라이언은 재미있는 게임을 생각해냈고 역시 전무로 승진할만한 인재라고 스스로에게 감탄했다. 라이언이 구상한(그리고 아마도 라이언만 즐거울만한) 게임은, 카카오 프렌즈를 두 팀으로 나누고, 각 팀이 같은 곳을 다른 순서로 방문하도록 해서 먼저 순회를 마친 팀이 승리하는 것이다. 그냥 지도를 주고 게임을 시작하면 재미가 덜해지므로, 라이언은 방문할 곳의 2차원 좌표 값을 구하고 각 장소를 이진트리의 노드가 되도록 구성한 후, 순회 방법을 힌트로 주어 각 팀이 스스로 경로를 찾도록 할 계획이다. 라이언은 아래와 같은 특별한 규칙으로 트리 노드들을 구성한다. 트리를 구성하는 모든 노드의 x, y 좌..
A non-empty array A consisting of N integers is given. A pair of integers (P, Q), such that 0 ≤ P < Q < N, is called a slice of array A (notice that the slice contains at least two elements). The average of a slice (P, Q) is the sum of A[P] + A[P + 1] + ... + A[Q] divided by the length of the slice. To be precise, the average equals (A[P] + A[P + 1] + ... + A[Q]) / (Q − P + 1). For example, arra..
A DNA sequence can be represented as a string consisting of the letters A, C, G and T, which correspond to the types of successive nucleotides in the sequence. Each nucleotide has an impact factor, which is an integer. Nucleotides of types A, C, G and T have impact factors of 1, 2, 3 and 4, respectively. You are going to answer several queries of the form: What is the minimal impact factor of nu..
C를 배우는 이유 - 컴퓨터 내부의 원리를 더 쉽게 이해할 수 있습니다. - C언어에서 파생되어 생겨난 언어를 배우는데 많은 도움이 됩니다. - 엄청나게 많은 코드들이 C언어로 작성되어 있습니다. 따라서, 어느 정도 수준 이상에 도달하게 된다면 C언어를 결코 피하실 수 없을 것입니다. \n 엔터:개행문자, \은 Escape character라고 합니다. - 기수법?? : 수를 표현하는 방법 2/10/16진수등으로 표현하는 방법 워드(Word)라고 부르는 단위가 있습니다. 컴퓨터에서 연산을 담당하는 CPU에는 레지스터(register)라는 작은 메모리 공간이 있는데, 이곳에다가 값을 불러다 놓고 연산을 수행하게 됩니다. CPU에서 연산을 수행하기 위해 잠시 써놓는 부분을 레지스터라고 합니다. 레지스터의 크..