본문 바로가기
728x90

전체 글651

6. Graphs 그래프(graph)란? 연결되어 있는 객체 간의 관계를 표현하는 자료구조. 그래프로 표현함으로써 문제를 쉽게 모델링하여 해결할 수 있다. 그래프 데이터 타입 그래프 G의 두 가지 구성 요소 V(G): G에 포함된 vertex(정점)들의 집합 E(G): G에 포함된 edge(간선)들의 집합 G=(V,E)라고 쓰기도 함. 무방향성 그래프와 방향성 그래프. 무방향성 그래프(undirected graph): edge의 방향성이 없음. (u,v), (v,u)는 동일한 edge를 표현한다. 방향성 그래프(directed graph=Digraph): edge에 방향성이 존재함. 는 u에서 v로 간다는 뜻. 그래프에서 사용되는 용어들. 완전 그래프(complete graph): Edge의 수가 최대인 그래프. n개의 .. 2022. 11. 14.
5장 - Forests/Find-Union forest: 여러 개의 트리들을 모아놓은 것. forest로 연결할 트리 A,E,G가 있다 이 트리들을 우선 이진트리로 바꾼다.(왼쪽-자식, 오른쪽-형제) 그럼 root노드는 형제가 없기 때문에, 이진트리에서 root의 오른쪽 자식은 항상 비게 된다 이 점을 이용해서, 여러 트리들을 root의 오른쪽 자식 노드로 연결-연결한다. tree들을 forest로 표현 한 후의 inorder, preorder, postorder은 각각 어떻게 변할까? inorder, preorder의 경우는 tree일때와 forest일 때가 동일하게 나오지만 postorder은 다르다! Forest 순회 방법 preorder Traversal of Forest F F가 empty이면 return F의 첫번째 트리의 root를 .. 2022. 11. 14.
pseudo class로 인터랙티브 버튼 만들기 얼마전에 만들었던 장바구니 페이지. HTML 삽입 미리보기할 수 없는 소스 버튼 위에 커서를 올리면 손가락모양으로 바뀐다거나 하는 등의 동작을 하려면 어찌해야하오 .pay-button { width:200px; height: 50px; background-color: navy; color: white; font-size: 16px; border-radius: 5px; float: right; cursor: pointer; } 이건 내가 얼마전 만들었던 버튼이다. cursor: pointer; 은 버튼위에 커서 올라갔을때 손가락모양으로 바뀐다는 것 .pay-button:hover{ background-color: cornflowerblue; } .pay-button:focus{ background: gra.. 2022. 11. 13.
표 생성하기 1 2 3 4 5 6 7 8 9 table 태그 안에 thead, tbody가 있고 그 안에 tr, 그 안에 td. td개수가 늘어나면 가로수가 늘어난다. 숙제>> 더보기 Your shopping cart ITEM AMOUNT PRICE TOTAL 상품명1 1 1979.00 1979.00 상품명1 1 1979.00 1979.00 3940.00 Edit your shopping cart 2022. 11. 11.
10장 메모리 관리 10.2 동적 할당 필요할 때 필요한 만큼만 메모리를 요청해서 사용하여 메모리를 절약할 수 있다. 사용 후 더 이상 필요가 없을 경우, 해당 영역을 반납한다ㅣ malloc() calloc() realloc() free() malloc을 사용한 동적 메모리 할당 #include void *malloc(size_t size); void free(void *ptr); malloc()은 void*타입이므로 사용시 형변환이 필수이다. #include void *calloc(size_t n, size_t size); //크기가 size인 메모리 공간을 n개 할당한다. 값을 모두 0으로 초기화한다. calloc의 경우 모든 바이트를 0으로 초기화한다. #include void *realloc(void *ptr,siz.. 2022. 11. 11.
8장 프로세스 8.1 프로그램 시작 사용자가 프로그램을 실행하면 내부적으로(shell 내에서) fork(), exec()시스템 호출을 통해 새로운 프로그램이 실행 됨 C 시작 루틴(start-up routine) 컴파일러가 실행 파일에 C 시작루틴을 포함시킴. 이 루틴은 exec로부터 전달받은 명령줄 인수, 환경 변수를 main함수로 전달함. 프로그램 실행 종료 main함수의 실행이 끝나면 exit( main(argc,argv)); 을 호출 (main에서 return 0-> exit(0)) 명령줄 인수 int main(int argc, char *argv[]); argc: 명령줄 인수의 개수 argv[]: 명령줄 인수 리스트를 나타내는 포인터 배열 더보기 #include #include int main(int argc.. 2022. 11. 8.
interface/Object class/Wrapper class/System class 자바는 다중상속이 불가능하다(부모가 여럿인거 불가) interface가 있다. public interface Lendable { //public abstract가 생략됨 abstract void checkOut(String borrower, String date); void checkIn(); } static 상수 혹은 추상메소드만 가질 수 있으며, 접근지정자는 public 고정이다. public abstract는 생략가능하다. public class SeparateVolume implements Lendable { public void checkOut(String borrower, String date) { ... } } implements 인터페이스명 으로 받은 후 메소드를 구체화해야한다. (오버라이.. 2022. 11. 8.
7. Motor Drive Motor drive step motor servo motor DC motor step motor 내부적으로 자력을 이용하여 모터를 회전한다. 동서남북으로 코일이 있어 전류를 주는쪽으로 회전된다고 생각하면 이해하기 편할 것 같다. 이 동서남북 역할을 하는 핀들을 이용하여 특정 패턴의 펄스를 순차적으로 적용하여, 정해진 방향과 각도로 움직인다. 이 펄스 주파수에 의해 모터 스피드가 결정된다. step motor drive module을 이용한다. 포텐쇼미터를 돌려 스탭모터 회전시키기 //스탭 모터 신호핀 설정 int motorPin1=8; int motorPin2=9; int motorPin3=10; int motorPin4=11; //포텐쇼미터 핀. 아날로그임 int potentioMeterPin=0; .. 2022. 11. 7.
5장 - Threaded Binary Tree/Selection Tree Treaded Binary Tree n개의 노드를 갖는 이진 트리에는 2n개의 링크가 존재하는데, 2n개의 링크 중 n+1개의 링크의 값은 null이다(단말노드) 이 null링크들을 다른 노드에 대한 포인터로 대체하자. ptr->left_child=NULL인 경우 inorder predecessor을 가리키도록 변경 ptr->right_child=NULL인 경우 inorder successor을 가리키도록 변경 노드의 구조 struct thread_tree { short int left_thread; struct thread_tree* left_child; char data; short int right_thread; struct thread_tree* right_child; }; 기존의 노드에서 lef.. 2022. 11. 7.
모닝빵 만들기(무반죽) 주의: 따라하지 마시오. 재료: 우유125g 설탕25g 꿀7g 버터25g 이스트4g 박력분225g 다 섞으면 대략 이렇게 됨. 무반죽이라고해서. 발효를 시키면서 중간중간 "접어주기" 라고하는 행위를 하면 손으로 치대는 반죽을 할 필요 없이 빵이 잘 만들어진다고 함. 나는 20분 발효-> 접어주기 -> 20분 발효 -> 접어주기 -> 냉장발효 를 하였다 발효 1차시. 아주 잘 부풀었다 중간과정 다 생략하고. 냉장보관하고있던 반죽을 꺼내서 찔러보았는데 잘 발효가 됐다(됐다가 아니라 된줄 알았다) 6개로 나누어 둥글려준 뒤 잠시 실온에 20분간 두었다가 20분 후에 다시 둥글리기하여 모양을 잡아주고 오븐에 구웠다. (170도에서 20분간 구웠다) 굽는중. 반죽이 뭔가 내생각보다 축축 쳐지는게 영 마음이 불편했.. 2022. 11. 7.
[HTML] input HTML 삽입 미리보기할 수 없는 소스 코딩애플로 배우고있는 HTML 이번 시간에는 input 박스를 만들었다 input type=[text,email,checkbox,button 등] 해오라는 대로 만든 레이아웃. 내가 짜본 코드의 문제점: 클래스가 제각각이다 => 재활용을 하지 못한다 가 가장 큰 문제. 더보기 contact us Your Email First name Last name Message subscribe 아직 미숙해서 클래스명도 뒤죽박죽 css도 여기저기 알아보기 힘들게 흩어져있다. 다음 강의를 듣고 수정한 부분들. 모든 입력창들은 class를 "form-input"으로 통일하여 클래스를 재사용하였다. Fist name, Last name은 class를 "w-50"으로 통일하였다. (w.. 2022. 11. 6.
5장 - Heaps Heap 최대 트리(max tree): 트리의 모든 노드에 대해 부모 데이터 값>자식 데이터 값 최대 힙(max heap): 최대 트리이면서 완전 이진 트리 최소 트리(min tree): 트리의 모든 노드에 대해 부모 데이터 값 heap[i / 2].key)) { heap[i] = heap[i / 2]; } heap[i] = item; } 배열의 끝에 새로운 노드를 추가한다.==> ++(*n) 추가된 위치부터 parent노드를 한 단계씩 조사한다. 부모보다 값이 크다면 자리를 바꾸고, 부모보다 값이 작아지거나 root가 될 때까지 반복한다. delete element delete_max_heap(int* n) { int parent, child; element item, temp; if (HEAP_EMP.. 2022. 11. 4.
추상화 클래스, 추상화 메소드, 다형성 추상화 클래스 MsgSender abstract public class MsgSender { String title; String senderName; public MsgSender(String title,String senderName) { this.title=title; this.senderName=senderName; } abstract void sendMsg(String recipnt); } 추상화클래스 MsgSender을 상속받는 이메일 클래스 public class EmailSend extends MsgSender { String sendAddr; String emailBody; public EmailSend(String title, String senderName,String sendAddr.. 2022. 11. 3.
[데이터통신] Data Link Layer 지금까지는 물리계층에 대해 공부를 했었다면 이번시간부터는 데이터링크 레이어에 대해 알아본다. 데이터링크 레이어는 원홉 통신을 담당하고 네트워크레이어에서 내려온 데이터그램에 헤더를 붙여 프레임을 구성한다 (붙이는 헤더에는 보내는host의 MAC주소, 받는host의 MAC주소 등의 정보가 들어있다) Broadcast(shared wire or wireless medium) 송신 데이터가 네트워크에 연결된 모든 호스트에 전송되는 방식. 예시: (유선)버스 토폴로지,(무선)WiFi 4G 5G 라디오 등 데이터를 전송할 때.. 하나의 선으로 여러 대의 pc가 연결되어 있다고 하자.(버스형) 만약 동시에 여러 pc에서 신호를 발생시키면..? collision(충돌)이 생겨 신호를 제대로 전달 할 수 없다. 이 때 .. 2022. 11. 2.
5. 파일 시스템 파일 시스템 구조 부트 블록 슈퍼 블록: 전체 파일 시스템에 대한 정보를 저장(총 블록 수, 사용 가능한 i-노드 수 등) i-리스트 : 각 파일을 나타내는 모든 i-노드들의 리스트. 한 블록은 약 40개 정도의 i-노드를 포함함.(i-노드 하나가 하나의 파일을 가리킴) 데이터 블록 : 실제 파일의 내용(데이터)을 저장하기 위한 블록들 i-노드 하나의 파일은 하나의 i-노드를 갖는다. i-노드는 파일에 대한 모든 정보를 가지고 있음.(ls-l명령어의 출력에서 나오는 것들이 i-node에 저장되어있음) 데이터 블록 포인터 i-node 내부에 위치함. 파일의 내용을 저장하기 위해 할당된 데이터 블록의 주소. 하나의 i-node 내의 블록 포인터는 직접 블록 포인터 12개 간접 블록 포인터 1개 이중 간접 블.. 2022. 11. 2.
내가 만든 아이스박스와 엽기떡볶이 로제엽떡 정말 오랜만에 로제엽떡을 시켜먹었다.. 베이컨추가, 중국당면추가 했다 다음부터 당면은 추가 안해야겠다 맛없는건 아닌데 굳이 돈주고 추가할 정도는 아닌듯 베이컨도 딱히? 그냥 기본이 제일이다~ 저번에 내가 만들었던 아이스박스 오랜만에 꺼내서 먹어봄 참! 맛있었다~ 진짜 파는거같은 맛 나고 더 맛있는거같음 ㅎㄷㄷ 2022. 11. 1.
갈비튀김 만들기 얼마전에 산 돼지고기 앞다릿살. 그냥 구워먹기엔 내 입맛에 안맞아서 갈비는 아니지만 갈비튀김을 만들기로 작정. 진간장 0.5컵 물 0.5컵 맛술0.5컵 참기름2숟갈 설탕3숟갈 다진마늘1숟갈 후추 톡톡 다 섞어서 고기를 재워준다. 튀김반죽 묻혀서 튀겨버림. (튀김가루:물 1:1로 섞음) 비주얼은 좀 이상해보이지만 완성 맛은? 간장치킨같은 맛이 남~ 얼큰하게 스리라차마요 소스에 찍어서 뜨억~ 맛있는데 너무많이 먹어서 지금 사진만 봐도 토할거같음 2022. 11. 1.
입출력,버퍼,파일입출력 문자 입출력하기 import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; public class InputStreamEx01 { public static void main(String[] args) { InputStream in = System.in; OutputStream out = System.out; try { int inputChar = in.read(); out.write(inputChar); out.flush(); out.close(); in.close(); }catch(IOException e) { e.printStackTrace(); } } } 문자를 하나씩 처리한다. (read 시 하나의 문자만.. 2022. 11. 1.
상속,오버라이딩,super(),final,abstract Account 클래스를 상속받는 CheckAccount클래스의 생성자 public CheckAccount(String accountNum,String name,int balance,String cardNo) { //super() 생략됨. Account()이 없으면 에러 super(accountNum,name,balance);//이렇게 사용가능 this.cardNo=cardNo; } 상속받은 클래스의 생성자에서는 super()이 자동으로 실행됨. (부모클래스의 기본생성자가 없는 경우 에러가 발생함) super()에 인자를 넣어서 사용할 수도 있다. 메소드 오버라이딩 void deposit(int amnt) { this.balance += amnt; System.out.println(name+"님 게좌에"+.. 2022. 11. 1.
6. Analog Input poteiometer input light input temperature measurement water level measurement analog joystick sound input analogRead(analog pin number) //아날로그 핀으로부터 전압값을 읽음. (0~5V의 값을 0~1023의 값으로 읽어옴) map(value, range1 min, range1 max, range2min, range2max) //range1 min~max범위에서의 value값을 range2 min~max범위의 값으로 매핑 potentiometer 가변 저항. 저항의 위치를 물리적으로 옮김으로써 저항을 많이/적게 통과하게 만듦 const int potentioMeterPin =0; const int l.. 2022. 11. 1.
728x90