2025년, 코딩은 선택이 아닌 필수!

2025년 모든 학교에서 코딩이 시작 됩니다. 먼저 준비하는 사람만이 기술을 선도해 갑니다~

강의자료 343

[C#] C#에서 MDB(Access DataBase) 다루기

목표 - MDB(Access DataBase) 파일이 없을때 생성해 보기 - MDB(Access DataBase) 를 이용해서 데이터베이스 명령어(Sql문 - insert,select,update 등)을 확인하기 준비 폼구성 panel - Dock : Bottom label : 4개 - 아이디/이름/핸드폰/학교/학년 textbox : 4개 - 아이디/이름/핸드폰/학교/학년 ContextMenuStrip : 삽입/삭제 추가 datagridview - Dock : Fill / ContextMenuStrip : ContextMenuStrip1 소스코드 - 데이터베이스 생성 1 2 3 4 5 6 7 8 9 10 11 12 private void mdbFileCreate(string strDBName) { Str..

강의자료/C# 2021.02.18

[C#] Excel 파일 다루기

목표 - 보고서 를 엑셀파일로 저장하는 방법 등에 대해 다루어 봅니다. - 엑셀 파일을 읽어 보고 저장 하는 방법등을 배웁니다. - DataGridView 사용법을 확인합니다. 컴포넌트 설명 - DataGridView : 테이블 형태의 데이터를 화면에 뿌려 주는데 DB와 바인딩해서 사용이 가능하며 개발자가 수동으로 갱신할 수 있다.(이번 프로젝트에서는 수동으로 갱신하는 방법을 활용해 본다.) 준비 - Office / SharePoint Developmen 를 추가 설치 합니다. - 참조관리자에서 Microsoft Excel 16.0 Object Libray/Microsoft Office 16.0 Object Libary 추가 폼구성 - panel : Dock - Top - Button : 2개 - Exc..

강의자료/C# 2021.02.16

[컴퓨팅 사고력]해시(Hash)테이블 이해하기

길동이는 주차장에서 일을 하고 있습니다. 주차장은 5개 구역으로 나누어져 있고 1개 구역에는 10대씩을 세워 둘 수 있습니다. 길동이가 하는 일은 손님이 오면 손님의 차를 대신 주차 구역에 주차를 시켜 주고 찾으러 오면 차를 찾아서 전달해 주는 역할을 합니다. 하지만 차가 많아지면서 차를 어디에 두었는지 찾기가 힘들어 졌는데요~ 꾀 많은 길동이는 다음과 같은 아이디어를 생각해 냈습니다. 차의 뒷번호를 확인해서 뒷번호가 1,6 이면 1번 구역에 2,7이면 2번 구역에 3,8 이면 3번 구역에 4,9이면 4번 구역에 5,0 이면 5번 구역에 주차를 해 놓은 후에 손님이 찾는 번호만 확인하여 그 위치를 찾아 주었습니다. 그런데 하루는 50대를 주차 할 수 있는 주차장에 5대 밖에 주차를 하지 않았는데 1번구역..

[C#] IKeyboardMouseEvents 객체를 활용하여 화면보호기를 만들어 보자

목표 - IKeyboardMouseEvents 를 활용하여 마우스,키보드,커서 등을 후킹하는 방법을 살펴 보자 준비 MouseEvent 를 후킹하기 위해서 Nuget관리자에서 MouseKeyHook 설치 폼구성 폼의 속성 FormBorderStyle: None WindowState : Maximized Timer :StartTimer,LockTimer,timer1 PicturBox:pictureBox1 Resources 에 1.jpg,2.jpg 를 추가(화면보호기에서 두개의 이미지를 번갈아 화면에 뿌려줌) 소스코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39..

강의자료/C# 2021.02.03

[컴퓨팅 사고력] 피보나치 수열

피보나치 수열이란? 피보나치 수열의 유래는 피사의 레오나르도로 알려진 레오나르도 피보나치가 1202년 토끼의 번식을 언급하면서 이 수에 대해 연구하기 시작되었으며 다음과 같은 수열을 피보나치 수열이라고 합니다. 1항 2항 3항 4항 5항 6항 7항 8항 9항 10항 1 1 2 3 5 8 13 21 34 55 이 수열의 규칙은 1항과 2항은 각각 1이고 3항 부터는 전항과 전전항의 값을 더한 값이 됩니다. 피보나치 수열에 관한 문제유형 일반적으로 피보나치 수열을 응용한 문제가 정보올림피아드 수학에서 종종 나오고 있으며 특히 알고리즘 분야에서는 동적알고리즘을 배울때 처음 만나게 되는 수열중에 하나 입니다. 그렇다면 정보올림피아드에서 나왔던 기출문제를 풀어 보겠습니다. 정보올림피아드 2003년 초등부 10번 ..

[초등 사고력 풀이비법] 합과 차의 관계를 이용해 해결하기

이러한 유형의 문제는 정보올림피아드 기출문제 유형에서 자주 볼 수 있는 유형인데요. 합과 차에 관한 문제는 크고 작은 두 수의 합을 알고 또 이 두 수의 차이를 알고 있을때 두 수를 구하는 응용 문제입니다. 예를 들면 " 길동이가 가지고 있는 필통에서 연필을 2자루 꺼내니 길순이가 가지고 있는 필통의 연필의 개수가 같습니다." 라고 한다면 길동이는 길순이보다 2개 더 많은 연필을 가지고 있음을 알 수 있습니다. 이러한 원리를 응용하여 풀어 볼 수 있는 문제는 다음과 같습니다. 1. 구슬 111개를 길동이와 길순이가 나누어 가졌습니다. 이때 길동이가 가지고 있는 구슬이 길순이가 가지고 있는 구슬 보다 33개가 더 많다면 길동이가 가지고 있는 구슬은 몇개 이겠습니까? 더보기 길동이가 가지고 있는 구슬을 X개..

[컴퓨팅 사고력]블록쌓기 게임으로 스택 구조 이해하기

두 사람이 각각 하나의 블록을 쌓거나 내려 놓을 수 있는 놀이를 한다고 가정할 때 두 사람이 만들어 낼 수 있는 블록 모양을 생각해 보자. 각 블록에는 수가 쓰여져 있으며 이 수들은 절대 두번 이상 나오니 않는다. 또한 두 사람은 블록에 쓰여진 수에 따라 차례대로 쌓을 수 있으며 한번 쌓여진 블록은 다음 사람에 이해서 내려지면 다시는 사용할 수가 없다. 다음 블록의 모양을 보고 두 사람이 어떻게 블록을 쌓아 올라갔는지 생각해 보자. 가) 의 경우는 두사람이 차례대로 1,2,3,4 를 쌓아 올린 것이다. 나) 의 경우에는 첫번째 사람이 1을 올리고 두번째 사람이 2를 올린것을 첫번째 사람이 2를 내린 후 두번째 사람이 3을 올리고 첫번째 사람이 4를 올렸음을 알 수 있다. 즉 첫번째 사람은 1,4를 올리고..

[C#] 비트맵 이미지를 활용하여 폼의 디자인에 날개를 달아 보자.

목표 - 비트맵 이미지를 활용해서 폼의 디자인을 변경해 보자 - 폼을 마우스로 드래그 하여 이동하는 방법을 확인해 보자. 폼구성 - 폼에 버튼을 올려서 종료로 Text를 변경 - 적당한 이미지를 다운로드 후 BMP 파일로 변환 - 탐색기를 띄워서 해당 BMP 파일을 드래그인 드래그하여 참조에 추가 후 해당 BMP 파일의 빌드작업 - 포함리소스 로 변경 - 솔루션탐색기->추가->클래스 선택해서 BitmapFormClass 클래스 생성 소스코드 - BitmapFormClass : 이미지의 path를 따서 폼과 버튼의 그림을 그려 주자 namespace BitmapForm 안에 다음과 같이 코딩 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 2..

강의자료/C# 2021.01.04

[C#] FileSystemWatcher를 이용한 파일 모니터 구현

목표 - FileSystemWatcher의 이벤트와 속성을 이해한다. - 파일을 다루는 방법을 배운다. - Splitter 사용법을 배운다 컴포넌트 설명 FileSystemWatcher : 파일시스템 속성 변경을 확인 할 수 있는 컴포넌트 DirectoryInfo : 디렉토리의 파일과 속성을 가져 올 수 있는 컴포넌트 Splitter : 화면을 분리해 주는 컴포넌트로 분리된 사이즈의 크기를 조정할때 사용됨 폼구성 위와 같이 화면 구성하자. 사용된 컴포넌트 상단 : Panel 안에 label,textBox,Button 하단 : groupbox 2개,splitter 1개 , 왼쪽 groupbox 의 Dock 속성을 left, 오를쪽 groupbox 의 속성을 Client 로 설정 왼쪽 groupbox : L..

강의자료/C# 2020.12.31

[알고리즘] convex hull trick

Convex Hull trick 란 Convex Hull trick 란 Convex Hull(블록껍질) 알고리즘과는 다른 알고리즘이다. 최적의 값을 찾아가는 형태가 Convex Hull 을 닮아서 Convex Hull trick 라고 알려져 있는데~ Convex Hull Optimization 이라고도 한다. 이 알고리즘은 특정 점화식 꼴을 가지는 동적계획법에서 시간을 줄이는 방법이다. 일차 함수식이 위와 같이 여러개가 들어 오는 경우 각 x의 입장에서 최솟값을 찾는 알고리즘 동적알고리즘에서 다음과 같은 형태의 점화식 작성시 사용됨 dp[i] = min(dp[j] + a[i]b[j])( 0 13263번: 나무 자르기 첫째 줄에 n(1 ≤ n ≤ 100,000)이 주어진다. 둘째 줄에는 a1, a2, ....