본문 바로가기

분류 전체보기

(502)
[코딩인터뷰 완전정복] 2.7 교집합 Q : 단방향 연결리스트 두 개가 주어졌을 때 이 두 리스트의 교집합 노드를 찾은 뒤 반환하는 코드를 작성하라. 여기서 교집합이란 노드의 값이 아니라 노드의 주소가 완전히 같은 경우를 말한다. 즉, 첫 번째 리스트에 있는 k번째 노드와 두 번쨰 리스트에 있는 j번째 노드가 주소까지 완전히 같다면 이 노드는 교집합의 원소가 된다. A : HashSet을 사용한다. 첫 번째 리스트를 순회하며 각 노드의 주소값을 HashSet에 담는다. 두 번째 리스트를 순회하며 노드의 주소값이 HashSet에 있을 경우 해당 노드부터 End노드 까지의 부분 리스트가 두 리스트의 교집합이다.
[코딩인터뷰 완전정복] 2.6 회문 Q : 주어진 연결리스트가 회문(palindrome)인지 검사하는 함수를 작성하라. ...더보기 // LinkedList.h #include template struct node { T data; node *next; }; template class linked_list{ private: node *head, *tail; public: linked_list() { head = NULL; tail = NULL; } node* add_node(T n) { node *temp = new node; temp->data = n; temp->next = NULL; if (head == NULL) { head = temp; tail = temp; } else { tail->next = temp; tail = tail..
Unity 현재 Scene 정보 가져오기 SceneManager.GetActiveScene(); // Scene 객체 가져오기 SceneManager.GetActiveScene().name; // 현제 Scene의 이름 SceneManager.GetActiveScene().buildIndex; // 현제 Scene의 인덱스넘버 Scene의 Index는 Build Settings에서 확인 할 수 있다. 참고로 다음 2개의 프로퍼티는 지금은 사용하지 않는다. Application.loadedLevel -현재 씬 인덱스 (int) Application.loadedLevelName - 현재 씬 이름 (string) 사용하면 다음과 같이 SceneManager를 사용하라고 나온다.
[코딩인터뷰 완전정복] 2.5 리스트의 합 Q : 연결리스트로 숫자를 표현할 때 각 노드가 자릿수 하나를 가리키는 방식으로 표현할 수 있다. 각 숫자는 역순으로 배열되어 있는데, 첫 번째 자릿수가 리스트의 맨 앞에 위치하도록 배열된다는 뜻이다. 이와 같은 방식으로 표현된 숫자 두개가 있을 때, 이 두 수를 더하여 그 합을 연결리스트로 반환하는 함수를 작성하라. ...더보기 // LinkedList.h #include struct node { int data; node *next; }; class linked_list { private: node *head, *tail; public: linked_list() { head = NULL; tail = NULL; } node* add_node(int n) { node *temp = new node; t..
[코딩인터뷰 완전정복] 2.4 분할 Q : 값 x가 주어졌을 때 x보다 작은 노드들을 x보다 크거나 같은 노드들보다 앞에 오도록 하는 코드를 작성하라. 만약 x가 리스트에 있다면 x는 '오른쪽 그룹' 어딘가에만 존재하면 된다. 왼쪽과 오른쪽 그룹 사이에 있을 필요는 없다. ...더보기 // LinkedList.h #include struct node { int data; node *next; }; class linked_list { private: node *head, *tail; public: linked_list() { head = NULL; tail = NULL; } node* add_node(int n) { node *temp = new node; temp->data = n; temp->next = NULL; if (head == ..
[코딩인터뷰 완전정복] 2.3 중간 노드 삭제 Q : 단방향 연결리스트가 주어졌을 때 중간에 있는 노드하나를 삭제하는 알고리즘을 작성하라. 단 삭제할 노드에만 접근 할 수 있다. ...더보기 // LinkedList.h #include struct node { int data; node *next; }; class linked_list { private: node *head, *tail; public: linked_list() { head = NULL; tail = NULL; } node* add_node(int n) { node *temp = new node; temp->data = n; temp->next = NULL; if (head == NULL) { head = temp; tail = temp; } else { tail->next = tem..
[코딩인터뷰 완전정복] 2.2 뒤에서 K번째 원소 구하기 Q : 단방향 연결 리스트가 주어졌을 때 뒤에서 k번째 원소를 찾는 알고리즘을 구현하라. ...더보기 // linked_list.h #include struct node { int data; node *next; }; class linked_list { private: node *head, *tail; public: linked_list() { head = NULL; tail = NULL; } void add_node(int n) { node *temp = new node; temp->data = n; temp->next = NULL; if (head == NULL) { head = temp; tail = temp; } else { tail->next = temp; tail = tail->next; } ..
[코딩인터뷰 완전정복] 2.1 중복 없애기 Q : 정렬되어 있지 않은 연결리스트가 주어졌을 때 이 리스트에서 중복되는 원소를 제거하는 코드를 작성하라. + 임시 버퍼를 사용할 수 없다면 어떻게 풀 수 있을까? 우선 연결리스트를 준비한다. ...더보기 #include struct node { int data; node *next; }; class linked_list { private : node *head, *tail; public: linked_list() { head = NULL; tail = NULL; } void add_node(int n) { node *temp = new node; temp->data = n; temp->next = NULL; if (head == NULL) { head = temp; tail = temp; } else..