2025.03.25 - 정처기 24년도 3회 12~20 짝수

이주원·2025년 3월 25일

컴퓨터언어

목록 보기
11/50
post-thumbnail

내일 해야할 문제를 미리 풀어놓아요

2024 3회 기출문제

12, 14, 16, 18, 20

12

  #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은 이렇게 생가각하면 됩니다.

  1. (arr+i) => *(arr) +1
  2. +i , 인덱스를 그저더하면됨
  3. 마지막으로 %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 - 가상 사설망으로 보안 터널을 따로 만들어서 사설망처럼 사용하는 기술이라고합니다. 주로 기업에서 외부로부터 접근을 통제하고 내부에서 통신을하도록할때 필요한 기술 같습니다.

profile
뭐가될지 모름

0개의 댓글