1. 포인터포인터는 메모리 주소를 저장하는 변수로, 일반 변수는 값을 저장하지만, 포인터는 해당 값이 저장된 메모리 주소를 저장주소 연산자: &int a = 10;int *pa = &a; // 변수 a의 주소를 포인터 pa에 저장 2. 주소 출력주소를 출력할 때는 포인터 전용 형식 지정자 %p를 사용해야 하며, 이는 16진수로 출력printf("%p\n", &a); // a의 주소를 16진수로 출력10진수로 출력하려면 %u 형식 지정자를 사용printf("%u\n", (unsigned int)&a); // 주소를 10진수로 출력 3. 포인터와 간접 참조 연산자: *포인터 변수가 가리키는 값을 참조하려면, 간접 참조 연산자 *를 사용포인터 pa가 가리키는 변수 a는, *pa로 값을 접근할 수 있으며 ..
전체 글
1. 배열동일한 자료형의 데이터를 연속적으로 저장하는 자료 구조C에서 배열은 고정된 크기를 가지며, 배열의 각 요소는 인덱스를 통해 접근 가능 배열의 선언배열을 선언 시 자료형과 배열의 크기를 지정int arr[5]; // 크기가 5인 정수형 배열 선언 배열 초기화int arr[5] = {1, 2, 3, 4, 5}; // 배열 선언과 동시에 초기화int arr[] = {1, 2, 3}; // 크기를 생략하면 초기화된 값의 개수에 맞춰 배열 크기가 결정됨 sizeof 연산자를 활용한 배열 크기 확인int arr[5] = {1, 2, 3, 4, 5};int size = sizeof(arr) / sizeof(arr[0]); // 배열의 요소 개수를 계산 2. 문자 배열문자들을 저장하는 배열로, 문자열을..
1. 함수 정의반환형 함수명(매개변수1, 매개변수2) { // 함수의 코드 return 반환값;}반환형: 함수가 작업을 수행한 후 반환할 값의 자료형, 값을 반환하지 않으면 void를 사용함수명: 함수의 이름매개변수: 함수가 호출될 때 함수로 전달되는 입력값return: 함수가 반환할 값을 명시한다. void형 함수는 return이 없거나, 단순히 return; 을 사용 2. 함수 호출호출 시에 함수명과 괄호 안에 필요한 인수(매개변수)를 넣는다.int result = 함수명(인수1, 인수2); 3. 함수 선언(프로토타입)함수 사용 전에 해당 함수가 어떻게 생겼는지 컴파일러에게 알려주기 위해 선언을 미리 한다.함수 선언이 없으면 함수 정의는 항상 함수 호출 이전에 있어야 한다.반환형 함수명(매..
파이썬은 기본적으로 스택 자료구조를 제공하지 않지만, 리스트를 이용해 스택을 구현할 수 있다.스택은 LIFO(Last In, First Out) 방식으로 동작하며, 마지막에 추가된 항목이 가장 먼저 제거되는 구조파이썬 리스트의 몇 가지 메서드를 사용하면 스택의 기본 연산을 구현할 수 있다. 1.스택 연산push: 스택에 데이터를 추가하는 연산stack = []stack.append(10) # 스택에 10 추가stack.append(20) # 스택에 20 추가print(stack) # 출력: [10, 20] pop: 스택에서 가장 마지막에 추가된 데이터를 제거하고 반환하는 연산popped_element = stack.pop() # 스택에서 가장 위에 있는 20을 제거하고 반환print(popped_..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdnq7Py%2FbtsJwcvxJeE%2F2Jy3oG7GoyfKPA3O2sxpP0%2Fimg.png)
1차원배열#3가지 방법arr = [0] * 6arr = list(range(6))arr= [0 for _ in range(6)]이렇게 만들 수 있다.arr = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]print(arr[2][3]) #12arr = [[i]*4 for i in range(3)] # [[0,0,0,0],[1,1,1,1],[2,2,2,2]]실제로는 오른쪽 처럼 저장된다. 배열 선택시 고려할 점할당할 수 있는 메모리 크기를 확인중간에 데이터 삽입이 많은지 확인 파이썬에서는 리스트로 배열 표현 리스트 기법리스트 생성리스트에 데이터 추가append() 메서드: 리스트 끝에 새로운 데이터 추가+ 연산자: 두 리스트를 합쳐서 새로운 리스트 만든다.insert() 메서드: 특정 위치에..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtMF8R%2FbtsJuhdSwtd%2FsEy6DxhW87LGumbipRftMK%2Fimg.png)
https://product.kyobobook.co.kr/detail/S000210881884 코딩 테스트 합격자 되기: 파이썬 편 | 박경록 - 교보문고코딩 테스트 합격자 되기: 파이썬 편 | ★ 코딩 테스트 합격자가 되는 가장 확실한 방법! ★ 프로그래머스 제공, 전문가가 모여 엄선한 빈출 100문제로 철저하게 대비하세요신입 사원 코딩 테스트product.kyobobook.co.kr이 책을 가지고, 코테를 준비해보고자 한다. 배열부터 그리디까지 12단원이니, 하루에 한단원 끝낸다는 마인드로 차근차근 정리해보고자 한다.모든 문제를 12일안에 다 풀긴 어려우니1회독은 알고 있는 개념들을 정리하고 기본적인 문제들을 풀어보자2회독은 모든 문제를 내손으로 푸는 것을 중점으로 풀어보자3회독은 시간복잡도와 풀이 ..
가상화개념: 가상화는 물리적인 하드웨어 자원을 소프트웨어적으로 추상화하여, 여러 가상 환경을 생성하거나 하나의 자원을 다수의 사용자 혹은 시스템이 공유할 수 있도록 하는 기술1대의 물리서버를 여러대의 가상서버로 구축 가능여러대의 물리서버를 한대의 가상서버로 구축 가능서버, 스토리지, 네트워크 등의 하드웨어 자원을 보다 효율적으로 사용가능 가상화의 유형서버 가상화: 하나의 물리적 서버를 여러 대의 가상 서버로 나누어 사용하는 방식네트워크 가상화: 물리적 네트워크 장치를 가상화하여 논리적 네트워크를 구성, 네트워크 설정을 소프트웨어로 한다.물리적으로는 하나인 네트워크도 여러 가상 네트워크로 분할 가능물리적으로 떨어져 있는 여러 네트워크를 가상 네트워크 하나로 통합 가능데스크탑 가상화: 물리적 컴퓨터 없이 가..
1. 보안 리스크보안리스크: 시스템에 부정적인 영향을 미칠 가능성인시던트: 리스크가 노출되어 부정적인 영향이 실제로 발생한 사건리스크 = 위협 * 취약점 * 자산 2. 방화벽개념: 외부에서 시도된 부정한 접근을 차단하는 기능예시: 특정 전화번호를 차단하거나 특정 포트에 대한 접근을 차단하는 것 3. 패킷 필터링개념: 네트워크 패킷을 검사하여 허용된 패킷만 통과시키고 나머지는 차단하는 기능예시: 특정 IP 주소나 포트에 대한 패킷만 허용하고 나머지는 차단방화벽은 패킷 필터링을 포함한 더 큰 개념 4. 보안구역개념: 나뉜 네트워크를 말하며, 보안 구역이 같은 컴퓨터는 보안 수준이 같다고 할 수 잇다종류인터넷상 네트워크: 방화벽 밖에 위치하며 비통제 구역, 보안 수준이 가장 낮고 신뢰성이 낮다DMZ(Demil..