본문 바로가기

개발자

[자료구조] 연결리스트의 개념과 배열리스트와의 비교 연결리스트(Linked List)란 ?포인터를 이용하여 자료를 끊김 없이 연결되어 순차적으로 저장되는 것. 배열리스트와의 가장 대표적인 차이점배열리스트는 물리적 위치가 순차적이지만 ,연결리스트는 단순히 논리적 위치만 순차적이고 물리적 위치는 순차적이지 않을 수 있다는 것! 즉, 최대 원소 개수를 지정하는 것에 대한 차이가 있다.배열리스트는 무조건 최대 원소 개수를 지정해야하지만 연결리스트는 지정해줄 필요가 없다. 연결리스트의 구조노드(Node) = 자료 + 링크 연결리스트의 노드 추가와 제거는 링크 정보를 추가하거나 제거하는 것 배열리스트는 원소의 추가와 제거가 원소의 이동을 의미한다.노드 추가하기 노드 추가시 기존에 연결되어있던 링크를 제거하고 새로운 링크를 추가하여 다시 잇는다노드 제거하기 노드 제거.. 더보기
[자료구조] 배열리스트의 특징과 원소 추가 제거 방법 - 배열리스트(ArrayList) 논리적 (저장)순서와 물리적 저장 순서가 동일하다 원소의 위치 인덱스는 0부터 시작한다 (C배열에서와 동일) 배열리스트의 단점 원소의 개수가 10만개인 배열리스트에서 원소의 추가/제거가 빈번하게 발생한다면? 중간에 추가 제거가 일어날때 해당 데이터와 관계없는 데이터들의 이동이 필요하다 배열리스트의 원소 추가 추가전 시작 지점과 방향, 어디까지 의 3가지 점을 주의해야함 1의 위치에 5를 삽입하기위해 가장 뒤에 있는값을 하나씩 옮긴 후 새로운 데이터를 삽입한다 추가가능한 위치인지 확인 필요 newElementCount 개수 만큼 값을 추가로 저장할 수 있음 int addALElement(ArrayList* pList , int position, ArrayListNode e.. 더보기
[자료구조] 리스트의 개념, 리스트 사용을 위한 추상자료형 리스트(List) : 자료를 순서대로 저장하는 자료구조 구조가 매우 단순 여러 개의 자료가 일직선으로 서로 연결된 선형 구조 선형구조 - 자료가 1:1 관계인것. 리스트의 구현 배열리스트(Array List) C언어에서 제공하는 배열(array)을 이용하여 구현된 리스트 배열 vs. 배열리스트 배열 : 같은 자료형의 데이터가 메모리 상에 연속적으로 저장되는 것 배열리스트 : 자료가 일직선으로 서로 연결 배열리스트는 배열과 달리 서로 연결되어있어야 하기 때문에 중간에 자료를 제거하거나 추가할때 고려해야할 사항들이 있음 끊기지 않도록 자료를 서로 연결시켜주어야함 중간에 자료를 추가할 경우에는 두ㅣ의 자료들을 한칸씩 뒤로 이동시켜줘야함 연결리스트(Linked List) - 포인터를 이용한 구현 리스트 사용 예.. 더보기
[자료구조] 구조체의 정의와 선언 및 초기화 구조체(Structure) : 서로 다른 자료형의 데이터를 하나의 그룹으로 묶은 자료형 구조체의 선언 struct student{ char name[20+1];//+1은 null문자를 추가해준 것. intnum; float grade; } 구조체의 초기화 방법 1) 구조체의 초기화 방법 2) 값 설정 struct student student_lee = {"lee",2004153648, 92.5}; struct student student_lee={0}; strcpy(student_lee.name,"lee"); student_lee.year = 2004153648, student_lee.grade = 92.5; 구조체 변수의 복사(값 복사) struct student lee_src = {"lee",2004.. 더보기
[자료구조] C프로그래밍 기법(2) - 배열 1. 1차원 배열 배열(array) : 같은 자료형의 데이터를 메모리 상에 연속적으로 저장하는 메모리 형 0(4byte) 1(4byte) 2(4byte) 배열의 선언 int key[3]; 자료형 변수이름 왼쪽괄호 원소의 개수 오른쪽괄호 int key [ 3 ] - 변수 초기화의 필요성 key[0] (4byte) key[1] (4byte) key[2] (4byte) ? ? ? 변수를 초기화 하지않으면 쓰레기 값이 저장되어 이를 인지하지 못하고 연산할 경우 심각한 문제가 발생할 수 있다. 2. 배열의 초기화와 값 설정 배열의 초기화 방법2) 값 설정 방법 (1-1) 선언 시 초기화 int key[3] = {3,5,7}; int key[3] = {0,}; // 선언하면서 0으로 초기화 key[0] = 3; k.. 더보기
[자료구조] 알고리즘의 의미와 특성 알고리즘(Algorithm) 넓은 의미 자료구조와 함께 컴퓨터 프로그램을 구성하는 요소 컴퓨터 프로그래밍 = 자료 + 명령(연산) 좁은의미 어떠한 문제를 해결하기 위한 절차 ex. 1부터 100까지 합을 구하는 문제 문제를 해결하는 절차를 의사코드, Pseudo Code라고 한다. 알고리즘의 필수 5가지 특성 1. 입력(input) 외부에서 제공되는 자료가 0개 이상 있어야 한다 (입력할 수 없는 경우도 있다.) 2. 출력(output) 적어도 1개 이상의 결과를 만들어야 한다 3. 명백성(definiteness) 각 명령어는 의미가 모호하지 않고 명확해야 한다 4. 유한성(finiteness) 한정된 수의 단계 뒤에는 반드시 종료된다. 무한히 동작해서는 안된다 5. 유효성(effectiveness) 모.. 더보기
보안프로그램에서 개발자도구나 디버그 도구를 탐지하였습니다. 해결(은행 결제 앱 실행시 개발자도구 사용하기) 결제 관련 개발중에 위 오류로 인하여 디버그를 할 수 없어서 고생 하고있었는데 알고 보니 다른 개발자들은 그냥 다 가능하다는거 ㅋㅋㅋㅋㅋ 알고보니 보안 프로그램 깔려있어서 그랬던 거였다. 저번에 은행 업무보면서 설치했다가 이것때문에 결제 개발 못할뻔 ㅎㅎ Edge에서 테스트 중이었는데 삭제하고 새로고침하니까 바로 해결 ㅠㅠ 해결방법 nProtect Security 앱을 제거한다...! 더보기