목록전체 글 (36)
dew's CSE Studying
5.1 큐 추상 데이터 타입큐(queue): 먼저 들어온 애가 먼저 나가는 선입선출(FIFO:First In First Out)구조의 자료구조마트에서 줄 서는 거를 생각하자!!계속 쌓이는 스택의 경우 데이터의 추가와 삭제가 같은 쪽에서 일어났지만 큐는 전단(front)에서 삭제가, 후단(rear)에서 삽입이 일어난다! 큐의 ADT:-객체: 0개 이상의 요소들로 구성된 선형 리스트-연산: create(max_size) ::= 최대 크기가 max_size인 공백큐를 생성 init(q) ::= 큐를 초기화 is_empty(q) ::= if(size==0) return TRUE; else return FALSE; is_full(q) ::= ..
The Tower of Hanoi [조건]한 번에 하나의 원판만 이동 가능맨 위에 있는 원판만 이동 가능크기가 작은 원판 위에 큰 원판을 쌓는 것 불가능중간의 막대를 임시적으로 이용할 수 있으나 앞의 조건들을 지켜야 함 [코드]#include void hanoi_tower(int n, char from, char tmp, char to){ if(n==1) printf("원판 1을 %c에서 %c으로 옮긴다. \n", from, to); else { hanoi_tower(n-1, from, to, tmp); printf("원판 %d을 %c에서 %c으로 옮긴다. \n", n, from, to); hanoi_tower(n-1, tmp, from, to); }..
섹션7 스프링 DB 접근 기술 1.H2 데이터베이스 설치설치 완료~ 2.순수 JDBC이렇게 설정해두면 스프링이 DB연결을 위한 작업을 다 알아서 해준다이 파트는 옛날 개발에서는 직접 구현했지만 요즘은 잘 사용하지 않으므로 그냥 보면서 넘기기로 한다!*개방-폐쇄 원칙(OCP, Open-Closed Principle): 확장에는 열려있고 수정, 변경에는 닫혀있다우리가 JdbcMemberRepository를 생성했지만 다른 코드는 전혀 건들지 않았던 것처럼 스프링의 DI(Dependency Injection)을 사용하면 기존 코드를 전혀 손대지 않고, 설정만으로 구현 클래스를 변경할 수 있다 3.스프링 통합 테스트@Transactional: 트랜잭션을 먼저 실행->두 개의 데이터를 INSERT->ROLL@S..
섹션4 회원관리 예제 - 백엔드 개발1.비즈니스 요구사항 정리데이터: 회원ID, 이름기능: 회원등록, 조회-컨트롤러: 웹 MVC의 컨트롤러 역할-서비스: 핵심 비즈니스 로직 구현(ex 회원은 중복가입 불가)-도메인: 비즈니스 도메인 개체(ex 회원, 주문, 쿠폰,... 주로 db에 저장/관리)-리포지토리: db에 접근, 도메인 개체를 db에 저장/관리 2.회원 도메인과 리포지토리 만들기회원 도메인package hello.hello_spring.domain;public class Member { private Long id; //id식별자(for system) private String name; //이름이 있다 public Long getId() { return id; ..
섹션1 : 강의 소개1.개발 환경 구축하기intellij 다운로드 -> oracle에서 java17 다운로드 후 환경변수 설정(터미널) -> 스프링 설정 후 다운로드 -> intellij에서 스프링 다운로드까지 모두 마쳤다!강의에서는 java11 다운로드를 권장하지만 스프링부트가 3.~로 업데이트 된 이후로 17이상의 버젼만 작동한다.intellij는 학교 교육메일을 이용하여 유료버젼을 무료로 이용 가능하다 :) 2.살펴보기src 밑에는 main 파일과 test 파일이 나뉜다. 요즘 개발 트렌드에서는 test코드가 매우 중요하다!! 섹션2: 프로젝트 환경설정1.프로젝트 생성브라우저에 localhost:8080 에 들어갔을 때 이 에러페이지가 뜨면 성공이다! (현재는 아무것도 작성하지 않았기 때문에 에러페..
package sec01; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*; import java.util.*; //클래스 정의 : class UserManager{ //해시맵객체생성:멤버변수를 만들어준다 HashMap user; //생성자 정의 UserManager(String filename){ user=new HashMap(); //파일처리 FileReader fin; BufferedReader br=null; try { fin=new FileReader(filename); br=new BufferedReader(fin); }catch (FileNotFoundException e1) { e1.prin..
//허프만 코드 프로그램 #include #include #define MAX_ELEMENT 200 typedef struct TreeNode { int weight; char ch; struct TreeNode* left; struct TreeNode* right; }TreeNode; typedef struct { TreeNode* ptree; char ch; int key; }element; typedef struct { element heap[MAX_ELEMENT]; int heap_size; }HeapType; //생성함수 HeapType* create() { return (HeapType*)malloc(sizeof(HeapType)); } //초기화함수 void init(HeapType* h) ..
//히프 정렬 프로그램 #include #include #define MAX_ELEMENT 200 typedef struct { int key; }element; typedef struct { element heap[MAX_ELEMENT]; int heap_size; }HeapType; //초기화 함수 void init(HeapType* h) { h->heap_size = 0; } //생성함수 HeapType* create() { return (HeapType*)malloc(sizeof(HeapType)); } //heap의 삽입함수 void insert_max_heap(HeapType* h, element item) { int i; //i는 인덱스 번호 i = ++(h->heap_size); //트리를..
#include #include #define MAX_ELEMENT 200 typedef struct { int key; }element; typedef struct { element heap[MAX_ELEMENT]; int heap_size; }HeapType; //초기화 함수 void init(HeapType* h) { h->heap_size = 0; } //생성함수 HeapType* create() { return (HeapType*)malloc(sizeof(HeapType)); } //heap의 삽입함수 void insert_max_heap(HeapType* h, element item) { int i; //i는 인덱스 번호 i = ++(h->heap_size); //트리를 거슬러 올라가면서 부모..
//이진탐색트리 #include #include typedef int element; typedef struct TreeNode { element key; struct TreeNode* left, * right; }TreeNode; TreeNode* new_node(int item) { TreeNode* temp = (TreeNode*)malloc(sizeof(TreeNode)); //동적으로 메모리를 할당하여 새로운 노드를 생성 temp->key = item; temp->left = temp->right = NULL; return temp; } //순환적인 탐색함수 TreeNode* search(TreeNode* node, int key) { if (node == NULL) return NULL; if..