반응형

분류 전체보기 72

[자료구조]싱글 링크드 리스트(단순 연결 리스트) - 개념 및 생성 & 추가연산

싱글 링크드 리스트(Linked List) 싱글 링크드 리스트(Linked List) 개념 노드라는 단위의 데이터를 저장하고 데이터가 저장된 각 노드들을 순서대로 연결시켜서 만든 자료구조다. 데이터를 순서대로 저장해준다. 요소를 계속 추가 할 수 있다. 동적배열보다 복잡하다. 연결 리스트라고도 부른다. 노드(Node)에는 data, next라는 2가지 속성이 있다. data에는 저장하고 싶은 정보를 넣는다. next는 다음 노드에 대한 레퍼런스다. 따라서 링크드 리스트는 가장 첫번째의 노드 정보만 알면 next를 타고가서 연결되어 있는 모든 노드를 접근할 수 있다. 첫번째 노드 객체 = head 노드, 마지막 노드 객체 = tail노드 *주의* 링크드 리스트는 실제 메모리에 흩어져있는 형식이다. 예시로 ..

자료구조 2021.05.27

[자료구조] 동적, 정적 배열과 시간 복잡도 & 분할 상환 분석

배열 접근 파이썬의 list는 C언어의 배열을 따서 만들었다 차이점이 있다면 C배열은 1. 크기가 고정 2. 같은 타입의 데이터만 담을 수 있다. C언어의 배열은 미리 순서적이고 연속적인 메모리 칸을 쓴다고 예약하고 값을 넣는다 Python의 list는 레퍼런스가 저장되어있고 값을 저장한다기보다는 가리킨다는 의미라서 값이 연속적일 수도 있고 연속적이지 않을 수 도 있다. 배열 탐색 배열 접근 연산 : O(1) 배열 탐색 연산 : O(n) 정적, 동적 배열 정적 배열 : 크기 고정 (요소 수 제한) 동적 배열 : 크기 변함 (요소 계속 추가 가능) 일반적으로 배열은 정적 배열이다. 동적배열은 정적 배열처럼 일정한 메모리를 확보한 후 값을 집어넣는 건데 메모리가 꽉 차면 늘리는 식으로 정적 배열의 크기를 상..

자료구조 2021.05.26

[자료구조] 메모리와 레퍼런스(컴퓨터의 데이터 저장 개념)

메모리 컴퓨터에는 스토리지와 메모리라는 2가지 데이터 저장 방식이 있다 스토리지 : - 데이터를 영구적으로 저장하는 공간 - 데이터를 저장하는데 오래 걸린다 - 데이터를 받아오는데 오래 걸린다 메모리 : - 데이터를 임시로 저장하는 공간이다 - 데이터를 저장하는데 빠르다 - 데이터를 받아오는데 빠르다 보통 컴퓨터에서 동영상 같은거를 볼때 스토리지에서 메모리로 영상을 복사해서 메모리에서 영상을 재생하고 영상재생이 끝나면 메모리의 데이터가 사라진다. 메모리는 - 일정한 칸이 나눠져있고 - 각 칸에는 데이터를 저장할 수 있다. - 각 칸은 자신만의 주소가 있다. - 메모리 한칸의 기본적인 용량 = 1byte RAM : 임의 접근 메모리 임의 접근 : 저장 위치를 알면 접근할때 항상 일정한 시간이 걸림 메모리에..

자료구조 2021.05.26

[자바]포켓몬- Scanner로 만들기

포켓몬 클래스는 전 글이랑 그대로 만들고 Main클래스는 아래 처럼 만들면 된다 Main클래스 import java.util.ArrayList; import java.util.Scanner; public class PockemonMain { public static void main(String[] args) { //반보적으로 포켓몬을 생성하기 위함 Scanner sc = new Scanner(System.in); ArrayList pockeList = new ArrayList(); while (true) { System.out.println("이름, 타입,방어력, 공격력,체력 입력"); String name = sc.next(); // 이름 String type = sc.next(); // 타입 int..

자바 2021.04.27

[자바]객체 실습 - 포켓몬

먼저 필드, 생성자, 메소드를 작성해줄 Pockemon 클래스를 만들어 준다 package Pockemon; public class Pockemon { //스스로 동작X 설계만 진행하는 클래스 --> main 메소드를 쓰지 않겠다 //포켓몬 설계도 -> 포켓몬 정보 저장, 기능 //포켓몬 정보 : 속성(타입) - String, 이름- String, 방어력 - int, 공격력 - int, 체력 - int //포켓몬 속성 정의 //private : 접근지정자 제한주기 -> 다른 사용자에 의해서 정보가 수정되지 않도록 하기 위함! private String type; private String name; private int defense; private int attack; private int hp; //..

자바 2021.04.22

[자바]객체 정의 (붕어빵)

붕어빵으로 비유하면 생성자 : 어떤 값으로 똑같은 물체를 만들어 낼것인지 옵션값을 지정하는 것 클래스 => 붕어빵 틀 - 반죽(필드): 밀가루 반죽 - 굽다(메소드) : 붕어빵을 굽다 붕어빵 틀(){ } 붕어빵 틀(재료){ this.반죽 = 재료; } 붕어빵 틀(재료1, 재료2){ this.반죽 = 재료1; this.반죽 = 재료2; } 붕어빵 틀 붕어빵1 = new 붕어빵 틀(); 붕어빵 틀 붕어빵1 = new 붕어빵 틀("팥"); 붕어빵 틀 붕어빵1 = new 붕어빵 틀("슈크림"); 붕어빵 틀 붕어빵1 = new 붕어빵 틀("팥", "슈크림");

자바 2021.04.22

[자바]배열 Collection

○ Collection - 요소라고 불리는 가변 개수의 객체들의 집합 1. 객체들의 컨테이너라고도 불림 2. 요소의 개수에 따라 자동 크기 조절 3. 요소의 추가, 삭제에 따른 요소의 이동 자동 관리 - 여러 개의 객체를 보관할 수 있게 만들어진 클래스들의 집합 - 고정 크기의 배열을 다루는 불편함 해소 ○ Collection의 특징 - 제네릭(Generic)이라는 기법으로 구현 class Person{ public T name; } personperson = new Person; - 컬렉션의 요소는 객체들만 저장가능 기본 자료형의 데이터는 요소로 불가능. 기본 타입의 값을 추가한 경우 자동박싱에 의해 Wrapper 클래스로 변환되어 객체 형태로 저장. ○ Collection의 종류 ○ ArrayList..

자바 2021.04.20

[자바]메소드(Method)란?

○ 메소드(Method) - 객체를 행위로 표현 - 반복적으로 사용되는 코드 최소화 - 어떤 작업을 수행하기 위한 명령문의 집합 ○ 메소드의 기본구조 접근제한자 리턴타입 메소드이름(매개변수){ 실행문장1 실행문장2 return (반환값) } 리턴값이 없을경우는 리턴타입에 void를 쓴다. ex) public int add(int num1, int num2){ int result = num1 + num2; return result; } ○ 메소드의 기본구조 - 리턴타입 - 메소드의 수행결과를 어떤 타입(자료형)으로 반환할 것인지 알려주는것 - 아무것도 반환하지 않을 결우 리턴타입 대신 void를 사용한다 - 메소드가 결과값을 반환하는 경우 반드시 return문을 사용하여 메소드의 리턴타입에 맞는 결과값을 ..

자바 2021.04.16

[자바]2차원 배열

2차원 배열 생성: - 배열타입[][] 배열이름 = new 배열타입[행][열]; 배열의 길이 : - 배열이름.length ---> 행길이 - 배열이름[행].length ---> 열길이 public class Ex09배열2차원 { public static void main(String[] args) { //2차원 배열 선언 및 생성 (5행 3열) int[][] intArray = new int[5][3]; //이차원 배열을 돌면서 저장해줄 값 생성 int data = 0; //값을 저장해주기 위한 작업 for (int i = 0; i < intArray.length; i++) { // 행을 반복하기 위한 for문 for (int j = 0; j < intArray[i].length; j++) { // 열을..

자바 2021.04.16

[자바]for-each문이란

for each문 사용법: for( 타입 i : 변수명){ 실행문장; } 으로 쓰며 변수에서 차례대로 하나씩 i에 넣어 반복한다. 아래는 예시이다. public class Ex07for_each문 { public static void main(String[] args) { //for each문 사용하기 //for문과는 다르게 배열을 함계 활용하여 사용할수있는 반복문 int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; for(int i : arr) { // arr에서 하나씩 가져옴 System.out.print(i + " "); } //================================================================================..

자바 2021.04.16
반응형