#include <stdio.h>
struct Node {
int value;
struct Node* next;
};
void func(struct Node* node){
while(node != NULL && node->next != NULL){
int t = node->value;
node->value = node->next->value;
node->next->value = t;
node = node->next->next;
}
}
int main(){
struct Node n1 = {1, NULL};
struct Node n2 = {2, NULL};
struct Node n3 = {3, NULL};
n1.next = &n3;
n3.next = &n2;
func(&n1);
struct Node* current = &n1;
while(current != NULL){
printf("%d", current->value);
current = current->next;
}
return 0;
}
일단 시작은 메인함수 입니다.
구조체를 3개 만들고 있습니다.
값으로는 각각 1, 2, 3을 넣어주고
다음노드를 가르키는 포인트부분은 NULL을 체워줍니다.
연결 리스트인 것 같아요
n1 -> n3
n3 -> n2
포인트가 이렇게 가르키게됩니다
func 함수의 반복문 조건입니다.
while(node != NULL && node->next != NULL)
현재 노드의 value와 다음 노드의 value값을 바꿔줌
node가 존재해야하며
현재노드가 다음 노드를 가르키고 있어야 반복합니다
Node* current = &n1;
현재 가르키고있는 노드를 확인하는 포인트도 만들었네요
func함수 수행후
반복문을돌면서 모든 노드의 value를 출력합니다.
3 1 2

(1) 자동차의 부품별로 쪼갬
전체 <-> 부분관계
정답 : 연관
(2) 자동차의 종류를 나열함
부모에게서 상속받아서 디테일이생김
문제에서는 위개념이 역방향으로 표시되어있음
정답 : 일반화
(3) 텔레비전의 트리거
소유하거나 상속하는게 아니라 단순이 사용 하는 관계임
정답 : 의존

우선 메인함수로 갑니다.
배열을 만들고
변수 3개 생성
pp는 이중포인터입니다 (포인터를 가르키는 포인터변수라는뜻 , 다차원 배열을 사용할때라던가 , 동적으로 포인터를 사용하기위해 혹은, 포인터자체를 바꿀때 사용된다고 합니다.)
func함수는
(arr+i) 은 *(arr) + 1 즉 이중 포인터라고 보면 될것 같습니다
arr은 포인터인데 arr의 포인터니까
i가 1이라면 결국 arr[1] 이라고 생각하면 될 것 같아요
((arr+i) + i) % size은 이렇게 생가각하면 됩니다.
{
( 3 + 0 ) % 5,
( 1 + 1 ) % 5,
( 4 + 2 ) % 5,
( 1 + 3 ) % 5,
( 5 + 4 ) % 5
}
결국 각각 { 3, 2, 1, 4, 4 } 이렇게됨
arr[2]는 1이됩니다.

메인함수에서 시적합니다
sum 변수 생성
try함수에서 func()함수를 실행시키네요
throws Exception메서드는 예외처리를 던질수 있다는 뜻이라네요

해당 함수에서는 구지 throws Exception을 사용하지 않아도 됬을 것 같아요
func함수는 강제로 예외처리를 만드는 함수입니다. 강제로 NullPointer를 만들었다는 애러를 만들었어요
다시 본론으로 돌아가서
func함수를 호출하면 예외처리를 만들어냅니다.
널포인트 에러이기 때문에 sum = sum + 1을 발생시키겠네요
그런다음에 finally로가서 100을 더해줍니다
정답 : 101
눈에 띄는 단어가
임시로 구성되는 네트워크이며
노드끼리 직접연결하고
군사적인상황 긴급한상황에 사용된다네요
ㄱ. Infrastructure Network - 중앙 집중형 네트워크 구조입니다. AP(Access Point)를 중심으로 무선으로 연결됩니다. AS는 wi-fi라우터 입니다.
ㄴ. Firmware Network - 펌웨어는 네트워크가 아닙니다. 여기서 말하는 firmware network는 펌웨어를 통한 네트워크 제어/관리를 의미하는 말입니다.
ㄷ. Peer-to-Peer Network - 모든 노드가 동등한 관계로 서로 통신하는 구조입니다. (서버와 클라이언트 구분이 따로안되어 있다고하네요 신기하네, 블록체인 혹은 토렌트등이 이런 개념이라고합니다)
ㄹ. ad-hoc Network - 중앙 장치 없이 노드끼리 직접 연결하는 네트워크로 군대에서 주로 사용되는 통신 기술이라고 합니다. (급하게 연결할때 , 군대에관한 얘기는 ad-hoc의 키워드라고 생각하면 될 것 같아요 , 다른 예시로는 Wi-Fi Direct 연결을 생각하면 될 것 같습니다.)
ㅁ. Mesh Network - 모든 노드가 서로 다중으로 연결되어있다고 합니다. 그림으로 그리면 눈아프겠네요 , 매우안정적이고 , 장애발생시 복원력이 좋다고합니다. 집에 공유기를 여러개 설치하는 경우를 생각하면 좋을 것 같아요
ㅂ. Sensor Network - 센서들이 네트워크로 연결되어 데이터를 수집하는 IoT에서 많이사용되는 네트워크 시스템인것 같습니다.
ㅅ. Virtual Private Network - 가상 사설망으로 보안 터널을 따로 만들어서 사설망처럼 사용하는 기술이라고합니다. 주로 기업에서 외부로부터 접근을 통제하고 내부에서 통신을하도록할때 필요한 기술 같습니다.