공부/컴퓨터공학 (CS)

728x90
728x90
공부/컴퓨터공학 (CS)

Selection Sort, Merge Sort를 증명해보자

용어 배열 A는 배열 B의 서브 배열이다 : $a \in A, b \in B, A \subseteq B, |A| a[k], (x\in{ x| 0 \leq x \leq k - 1, x \neq k })$ 가 성립한다. 위의 분기에서 매 step마다 작은 값의 인덱스를 $m$으로 갱신하므로 ⇒ TRUE for loop가 종료된 후, 배열 a에서 가장 작은 값인 $a[m]$이 배열 a의 0번째 인덱스 위치에 오게 된다. 이때, 배열 a의 0번째 인덱스 위치에 있던 값과 swap되므로, 집합 조건은 깨지지 않는다. 이후, sort() 함수에는 매개변수로 a 배열의 서브 배열이면서, 길이가 1 작고, 0번째 인덱스 값이 빠진 서브 배열이 전달된다. base : $n=1$ ⇒ TRUE step : 이때, 위 의 과..

공부/컴퓨터공학 (CS)

알고리즘 Search & Sort

대부분의 알고리즘은 수학적 귀납법을 이용해서 증명이 가능함 (재귀적인 구조이기 때문) 수학적 귀납법 $P(1)$이 참이고 $P(n-1)\rightarrow P(n)$이 참이면 $P(n)$은 모든 자연수 $n$에 대해서 참이다. $P(1)$이 참이고, $P(1)\wedge P(2) \wedge ... \wedge P(n-1) \rightarrow P(n)$이 참이면 $P(n)$은 모든 자연수 $n$에 대해서 참이다. int sum(int x) { if (x == 1) return 1; return x + sum(x - 1); } base) sum(1) returns 1 → True step) “sum(x - 1)이 $1 + 2 + … + (n-1)$을 반환하면, sum(x)이 $1 + 2 + … + (n-..

공부/컴퓨터공학 (CS)

데이터베이스 pymysql + MySQL 응용 프로그램

1. 시연 영상 2. 소스 코드 import pymysql import os def printMenu(): os.system('cls') print("──────────────────────────────────────────────") print(" 데이터베이스 과제 - 202011353 이호은") print("──────────────────────────────────────────────") print(" 1. 학생 등록 2. 학생 삭제 3. 학생 조회") print(" 4. 과목 등록 5. 과목 삭제 6. 과목 조회") print(" 7. 수강 신청 8. 수강 취소 9. 수강 조회\n 0. 종료") print(" 메뉴 선택 : ", end='') def INSERT_STUDENT(): # SQL..

공부/컴퓨터공학 (CS)

C++ void pointer(generic pointer), reinterpret_cast

void pointer (generic pointer)는 모든 데이터 자료형의 주소를 저장할 수 있는 데이터 타입이다. void* p; 모든 데이터 자료형의 주소를 저장할 수 있다. int a = 10; double b = 5.5; void* p1 = &a; void* p2 = &b; void 포인터가 가르키는 대상의 타입을 알 수 없으므로 역참조가 불가능하다. 명시적 형변환을 통해 접근할 수 있다. int a = 10; void* p = &a; cout

공부/컴퓨터공학 (CS)

PyQt5, requests 사용한 프로그램으로 django 서버로 데이터 전송

django로 구현한 데이터베이스 중 Exhibition model의 구성은 다음과 같다. GUI 프로그램을 구현할 수 있는 Python 라이브러리인 PyQt5를 이용하여 프로그램을 작성했다. import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QTextEdit, QAction, QFileDialog, QGridLayout, QLabel, QWidget, QLineEdit, QPushButton, QCheckBox from PyQt5.QtCore import Qt import requests class MyApp(QWidget): def __init__(self): super().__init__() self.initUI() def init..

공부/컴퓨터공학 (CS)

건국대 SW심화프로젝트 - 능동형 자가 학습 신호 체계 SW

프로젝트 기획서 결과 발표 영상 소프트웨어 시연 영상 결과 보고서

공부/컴퓨터공학 (CS)

ROSpy를 이용해 라즈베리파이 카메라 데이터 받아와 OpenCV 처리

라즈베리파이에서 캠 데이터를 ROS 노드 전송을 이용해 받아온 그래프 형태이다. 이미지 정보는 데이터 노드 내 Image/Compressed 형식으로 존재한다. 우측 하단 이미지는 터틀봇에서 카메라(터틀봇의 보드는 라즈베리파이를 사용하기 때문에 카메라는 라즈베리캠이다) 데이터를 노드 데이터로 받아와 화면에 띄운 모습니다. 라즈베리파이의 카메라가 반대로 달려있기 때문에 180도 회전되어 출력된다. 이를 아래 파이썬 코드를 이용해 노드 토픽(node topic)의 카메라 데이터를 받아오고 openCV를 이용해 화면에 프로젝션 하는 것이다. #-*- coding:utf-8 -*- ''' References https://emanual.robotis.com/docs/en/platform/turtlebot3/ap..

공부/컴퓨터공학 (CS)

ROS 이론

http://www.ros.org/wiki/ Documentation - ROS Wiki ROS (Robot Operating System) provides libraries and tools to help software developers create robot applications. It provides hardware abstraction, device drivers, libraries, visualizers, message-passing, package management, and more. ROS is licensed under wiki.ros.org ROS (Robot Operating System) is an open-source, meta-perating system for your r..

공부/컴퓨터공학 (CS)

Linux Ubuntu 18.04 Operations

Directory 0. Directory Dots . : This directory .. : Upper Directory 1. Change Directory cd (directory name) 2. Make Directory mkdir (directory name) 3. Remove Directory rm (option) (directory name) -r : recursion -f : force 4. Move File (or Rename) mv (original file path) (destination path) 5. Show Operation History Stack history 6. Show File Contents cat (file name) 7. echo check the value that..

공부/컴퓨터공학 (CS)

Scala 학습노트

프로그래머스의 강좌 중 무료 강좌인 "30분 Scala" 강의를 정리하였습니다. Scala의 기본 구조 object LearnScala { def main(args: Array[String]): Unit = { println("Hello, world!") } } Scala 변수와 계산 Scala에서는 Primitive Type(Literal)은 Object로 취급하며 연산자는 Object의 Method가 된다. 1 + 2라는 연산식에서 피연산자 1은 Int Type Literal로 Object이며 + 연산자가 Object 1의 Method가 되고, 피연산자 2는 Factor가 된다. 피연산자를 객체로 보며, 연산자를 Object의 Method로 본다. 뒤의 연산자는 Factor이다. 복잡한 연산은 다중 ..

공부/컴퓨터공학 (CS)

C#으로 콘솔 2048 블록 게임 구현하기

실행 영상입니다. 친구와 함께 C# 스터디를 하며 예제로 2048 게임을 제작해보았습니다. Visual Studio(2019)로 C# 콘솔 앱을 통해 제작하였습니다. 생각보다 알고리즘이 수학적으로 복잡해서 설계하는데 노력을 기울였습니다. 이런 사소한 예제를 하는 데에도 수학이 쓰이는구나를 깨닫고 수학 공부를 열심히 하는 계기가 되었습니다. 이와 같이 오랜 시간 알고리즘을 고민한 후 작업에 돌입했습니다. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MiniGameProject { class Program { static void..

공부/컴퓨터공학 (CS)

아황산수소나트륨(NaHSO3)과 아이오딘산칼륨(KIO3)의 반응속도 실험 (아이오딘 시계반응), 파이썬 계산화학 프로그램

안녕하세요. 교내대회인 반응속도탐구대회에 자연과학계열의 친구와 함께 참가했습니다. 주제는 아황산수소나트륨(NaHSO3)과 아이오딘산칼륨(KIO3)의 반응속도에 대한 탐구였습니다. 흔히 아이오딘(이전 요오드) 시계반응이라고도 합니다. 제가 화학에도 관심이 있었기 때문에 교내대회 후 확장연구를 진행하고 싶어서 흔쾌히 하자고 했습니다. 대회 기간 중에는 교내 화학실험실에서 실험을 할 수 있도록 지원해주었습니다. 먼저 실험에 대해 전반적인 내용부터 말씀드리도록 하겠습니다. (보고서 내용입니다) I. 실험지식(이론) 반응 속도란, 반응이 빠르게 또는 느리게 일어나는 정도를 의미하며, 일정한 시간 동안 변화된 반응물이나 생성물의 농도를 측정하여 나 타낸다. 그리고 반응 속도는 크게 평균 반응 속도와 순간 반응 속도..

공부/컴퓨터공학 (CS)

라즈베리파이에 openCV 설치하기

안녕하세요. 캔위성 대회에서 사용하기 위해 openCV를 라즈베리파이에 설치했습니다. 설치 과정을 찾아봐도 매우 복잡하고 계속 오류가 떠서 외국 지문들과 포럼들을 찾아 어렵게 설치했습니다. 여러분들의 수고를 덜어드리기 위해서 직접 정리해서 올려드리려고 합니다. 천천히 잘 따라오시면 openCV를 설치하실 수 있을 겁니다. pi@raspberrypi:~ $ sudo apt-get update pi@raspberrypi:~ $ sudo apt-get upgrade 위 명령어를 입력해 라즈베리파이에 설치된 패키지와 OS를 최신으로 유지합니다. 다음으로 openCV를 컴파일 하는 과정에서 꼭 필요한 것들을 설치할 것입니다. $ sudo apt-get install build-essential cmake buil..

공부/컴퓨터공학 (CS)

라즈베리파이에 라즈비안 OS 설치하기

안녕하세요! 오늘은 라즈베리파이를 본격적으로 사용하기에 앞서 필수적으로 거쳐가야할 코스인 기본 OS 라즈비안 설치법에 대해 알려드리도록 하겠습니다! 물론 WINDOWS 10 기준입니다. 먼저 라즈베리파이는 영국에서 설계 및 생산하는 초소형 컴퓨터 보드입니다. 현재 라즈베리파이는 3세대로 1세대에 비하면 많은 진보를 이루었습니다. 출처 : 나무위키 현재 생산중인 모델은 노란색으로 표시되어 있습니다. 빠른 기술 발전에 발맞추어 라즈베리파이도 굉장히 빠른 발전을 하여 1세대와 3세대의 차이는 굉장합니다. 개인적으로 1세대와 3세대를 모두 이용해본 경험자로써 조언을 드리자면 1세대는 사용하면 굉장히 느립니다. 3세대와 CPU 속도가 약 10배정도 차이가 나기 때문에 1세대(모델 A)를 사용하다가 3세대(모델 3..

728x90
728x90
leehe228
'공부/컴퓨터공학 (CS)' 카테고리의 글 목록