자료구조
-
보호되어 있는 글입니다.
자료구조와 알고리즘 인강 정리 : 스택(Stack), 스택의 구현보호되어 있는 글입니다.
2023.04.01 -
연결리스트 구현 추상자료형 : 어떠한 데이터와 그 데이터를 연산하는 기능을 표기하는 것 ex)세탁기의 여러가지 빨래기능-빨래, 탈수, 남은시간, 배수 등(연산) 옷(데이터) 세탁기의 여러가지 기능만 나열했을 뿐 구체적인 구현방법은 나오지 않음(추상) 연결리스트의 추상자료형 -> 자바스크립트로 표현 1. 연결리스트의 모든 데이터 출력 -> printAll() 2. 연결리스트의 모든 데이터를 제거 -> clear() 3. 인덱스 삽입 -> insertAt(index, data); 4. 마지막 데이터 뒤에 데이터를 삽입하는 기능 -> insertLast(data) 5. 인덱스 삭제 -> deleteAt(index); 6. 마지막 데이터를 삭제 -> deleteLast(); 7. 원하는 인덱스에 있는 데이터 읽..
자료구조와 알고리즘 인강 정리 : 연결리스트 구현연결리스트 구현 추상자료형 : 어떠한 데이터와 그 데이터를 연산하는 기능을 표기하는 것 ex)세탁기의 여러가지 빨래기능-빨래, 탈수, 남은시간, 배수 등(연산) 옷(데이터) 세탁기의 여러가지 기능만 나열했을 뿐 구체적인 구현방법은 나오지 않음(추상) 연결리스트의 추상자료형 -> 자바스크립트로 표현 1. 연결리스트의 모든 데이터 출력 -> printAll() 2. 연결리스트의 모든 데이터를 제거 -> clear() 3. 인덱스 삽입 -> insertAt(index, data); 4. 마지막 데이터 뒤에 데이터를 삽입하는 기능 -> insertLast(data) 5. 인덱스 삭제 -> deleteAt(index); 6. 마지막 데이터를 삭제 -> deleteLast(); 7. 원하는 인덱스에 있는 데이터 읽..
2023.03.31 -
배열 배열 : 프로그래밍 언어에서 기본적으로 제공하는 자료구조 프로그래밍 언어에서 배열을 선언할 때 배열의 크기를 알려준다 int arr[10] = {1,2,3,4,5}; 위와 같이 배열을 선언할 때 운영체제는 메모리에서 숫자 10개가 들어갈 수 있는 연속된 빈공간을 찾아 배열의 값을 할당한다. 할당하지 않은 부분은 의미없는 값이 저장되어있다. 배열의 장점 : 배열의 인덱스 참조는 길이에 상관없이 한 번에 가져오기 때문에 O(1)의 성질을 가진다. 따라서 배열은 참조에서 좋은 성능을 보인다. 배열의 단점 : 배열의 참조 성능은 좋지만, 데이터의 삭제, 삽입 성능은 좋지 않다. 배열의 크기가 계속 커진다면 메모리가 늘어난 만큼의 연속된 공간을 다시 찾아야 하기 때문. 즉, 연속된 메모리 공간이 필요하고, ..
자료구조와 알고리즘 인강 정리 : 배열, 연결리스트배열 배열 : 프로그래밍 언어에서 기본적으로 제공하는 자료구조 프로그래밍 언어에서 배열을 선언할 때 배열의 크기를 알려준다 int arr[10] = {1,2,3,4,5}; 위와 같이 배열을 선언할 때 운영체제는 메모리에서 숫자 10개가 들어갈 수 있는 연속된 빈공간을 찾아 배열의 값을 할당한다. 할당하지 않은 부분은 의미없는 값이 저장되어있다. 배열의 장점 : 배열의 인덱스 참조는 길이에 상관없이 한 번에 가져오기 때문에 O(1)의 성질을 가진다. 따라서 배열은 참조에서 좋은 성능을 보인다. 배열의 단점 : 배열의 참조 성능은 좋지만, 데이터의 삭제, 삽입 성능은 좋지 않다. 배열의 크기가 계속 커진다면 메모리가 늘어난 만큼의 연속된 공간을 다시 찾아야 하기 때문. 즉, 연속된 메모리 공간이 필요하고, ..
2023.03.31 -
시간 복잡도 : 특정 알고리즘이 어떤 문제를 해결하는 데 걸리는 시간. 실행되는 n의 크기마다 실행되는 조작의 수를 나타낸다. 좋은 알고리즘은 사용자의 요구에 따라 달라진다.(메모리 사용이 적은 것, 속도가 더 빠른 것) 일반적으로 알고리즘의 속도를 성능의 속도로 사용한다. 하지만 사용자마다 컴퓨터 사양이 다르기 때문에 시간으로 알고리즘을 평가하기에는 문제가 있음. 따라서 알고리즘을 평가할 때는 코드에서 성능에 많은 영향을 주는 부분을 찾아 실행시간을 예측한다. 코드에서 성능에 많은 영향을 주는 부분은 반복문! 여러번 반복될때마다 느려진다. 배열에서 특정한 값을 찾는 코드 주어진 배열에서 10을 찾으시오. 1 3 5 8 10 --------------------------------------------..
자료구조와 알고리즘 인강 정리 : 시간복잡도시간 복잡도 : 특정 알고리즘이 어떤 문제를 해결하는 데 걸리는 시간. 실행되는 n의 크기마다 실행되는 조작의 수를 나타낸다. 좋은 알고리즘은 사용자의 요구에 따라 달라진다.(메모리 사용이 적은 것, 속도가 더 빠른 것) 일반적으로 알고리즘의 속도를 성능의 속도로 사용한다. 하지만 사용자마다 컴퓨터 사양이 다르기 때문에 시간으로 알고리즘을 평가하기에는 문제가 있음. 따라서 알고리즘을 평가할 때는 코드에서 성능에 많은 영향을 주는 부분을 찾아 실행시간을 예측한다. 코드에서 성능에 많은 영향을 주는 부분은 반복문! 여러번 반복될때마다 느려진다. 배열에서 특정한 값을 찾는 코드 주어진 배열에서 10을 찾으시오. 1 3 5 8 10 --------------------------------------------..
2023.03.29 -
자료구조 : 데이터가 어떤 구조로 저장되고 어떻게 사용되는지를 나타낸다. 가장 단순한 자료구조 : 변수, 배열 평균을 구하는 코드 //변수에 저장하여 처리 int a = 80; int b = 70; int c = 100; int avg = (a+b+c) / 3; ---------------------------------------- //배열에 저장하여 처리 int arr = [80, 70, 100]; int avg = 0; //평균을 저장할 변수 선언 for(int i = 0; i 데이터를 변수에 저장하는 것과 배열에 저장하는 것인지에 따라 처리방법이 달라짐. =자료구조에 따라 처리 방법이 달라진다. 위의 코드에서 만약 네개의 데이터의 평균을 구할 시 일반 변수에 저장하여 처리하는 경우 변수를 추가하고..
자료구조와 알고리즘 인강 정리 : 자료구조와 알고리즘이란?자료구조 : 데이터가 어떤 구조로 저장되고 어떻게 사용되는지를 나타낸다. 가장 단순한 자료구조 : 변수, 배열 평균을 구하는 코드 //변수에 저장하여 처리 int a = 80; int b = 70; int c = 100; int avg = (a+b+c) / 3; ---------------------------------------- //배열에 저장하여 처리 int arr = [80, 70, 100]; int avg = 0; //평균을 저장할 변수 선언 for(int i = 0; i 데이터를 변수에 저장하는 것과 배열에 저장하는 것인지에 따라 처리방법이 달라짐. =자료구조에 따라 처리 방법이 달라진다. 위의 코드에서 만약 네개의 데이터의 평균을 구할 시 일반 변수에 저장하여 처리하는 경우 변수를 추가하고..
2023.03.29 -
1부터 n까지 정수의 합 구하기 while문 반복 반복구조 : 어떤 조건이 성립되는 동안 처리를 반복하여 실행하는 것(루프) while문 형식 : while(제어식) 명령문 int sum = 0; int i = 1; while (i
자료구조, 알고리즘 입문 1-2 : 반복_정수의 합 구하기1부터 n까지 정수의 합 구하기 while문 반복 반복구조 : 어떤 조건이 성립되는 동안 처리를 반복하여 실행하는 것(루프) while문 형식 : while(제어식) 명령문 int sum = 0; int i = 1; while (i
2023.03.24 -
순서도의 기호 순서도 : 문제의 정의, 분석, 해법을 그림으로 표현하는 것 프로그램 순서도 순서도에서 사용하는 기호 1. 실제로 실행할 연산을 나타내는 기호 2. 제어 흐름을 나타내는 선 기호 3. 프로그램 순서도를 이해하거나 작성하는 데 편리한 특수 기호 데이터 : 데이터의 입력과 출력을 나타낸다. 처리 : 여러 종류의 처리 기능을 나타낸다. 미리 정의된 처리 : 다른 곳에서 이미 정의된 하나 이상의 연산 또는 여러개의 명령어로 이루어진 처리를 나타낸다. 판단 : 하나의 입구와 하나를 선택하는 몇 개의 출구가 있으며, 기호에서 정의한 조건을 평가하여 하나의 출구를 선택하는 판단 기능을 나타낸다. 루프 범위 : 두 부분으로 구성되어 루프의 시작과 종료를 나타낸다. 루프의 기호 사이에는 초깃값, 중간값, ..
자료구조, 알고리즘 입문 1-1 : 알고리즘이란_순서도의 기호순서도의 기호 순서도 : 문제의 정의, 분석, 해법을 그림으로 표현하는 것 프로그램 순서도 순서도에서 사용하는 기호 1. 실제로 실행할 연산을 나타내는 기호 2. 제어 흐름을 나타내는 선 기호 3. 프로그램 순서도를 이해하거나 작성하는 데 편리한 특수 기호 데이터 : 데이터의 입력과 출력을 나타낸다. 처리 : 여러 종류의 처리 기능을 나타낸다. 미리 정의된 처리 : 다른 곳에서 이미 정의된 하나 이상의 연산 또는 여러개의 명령어로 이루어진 처리를 나타낸다. 판단 : 하나의 입구와 하나를 선택하는 몇 개의 출구가 있으며, 기호에서 정의한 조건을 평가하여 하나의 출구를 선택하는 판단 기능을 나타낸다. 루프 범위 : 두 부분으로 구성되어 루프의 시작과 종료를 나타낸다. 루프의 기호 사이에는 초깃값, 중간값, ..
2023.03.22 -
입력한 정숫값의 부호 판단 import java.util.Scanner; //java.util패키지에 있는 Scanner클래스를 프로그램에 포함 (클래스 선언 앞에 작성) -Scanner : 키보드로 입력받기 위해 쓰는 class -import를 통해 외부 class를 호출 Scanner sc = new Scanner(System.in); //System.in -> 키보드와 연결된 표준입력스트림 -Scanner 클래스는 반드시 객체를 생성해야 한다. int n = stdIn.nextInt(); -stdIn : System.in에서 문자나 숫자를 꺼내는 역할을 한다. -next자료형 : 해당 자료형에 대한 입력을 받는 것. nextInt는 정숫값을 읽어들인다. if(n>0) System.out.printl..
자료구조, 알고리즘 입문 1-1 : 알고리즘이란_조건 판단과 분기입력한 정숫값의 부호 판단 import java.util.Scanner; //java.util패키지에 있는 Scanner클래스를 프로그램에 포함 (클래스 선언 앞에 작성) -Scanner : 키보드로 입력받기 위해 쓰는 class -import를 통해 외부 class를 호출 Scanner sc = new Scanner(System.in); //System.in -> 키보드와 연결된 표준입력스트림 -Scanner 클래스는 반드시 객체를 생성해야 한다. int n = stdIn.nextInt(); -stdIn : System.in에서 문자나 숫자를 꺼내는 역할을 한다. -next자료형 : 해당 자료형에 대한 입력을 받는 것. nextInt는 정숫값을 읽어들인다. if(n>0) System.out.printl..
2023.03.22