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

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

강의자료 335

[컴퓨팅 사고력]2의 보수 3의 보수는 무엇일까?

엊그제 학생들에게 2의 보수를 설명을 해 주면서 10의 보수의 개념에 대해 먼저 설명을 해주었답니다. 보수란 보충하는 수의 개념으로 8의 10의 보수는 10을 만들기 위한 2이고 8의 9의 보수는 9를 만들기 위해서 보충하는 1의 수라고 말해 주었답니다. 그리고 나서 2의 보수는 1의 보수에 1을 더한 값이라는 개념에 대해 설명을 해 주었습니다. 왜냐하면 2의 보수가 되려면 1과 2차이가 1이 차이가 나기 때문에 1을 더해 주어야 하기 때문이죠... 그러면서 88의 10의 보수는 100을 만들기 위한 12인데 이것을 100 - 88 = 12 라고 계산 하는 것 보다 9의 보수 개념으로 각각의 자리에서 9-8 = 1, 9 - 8 = 1 이기 때문에 11 + 1 = 12 가 되는 방법에 대해 설명을 해 주면..

CodeBlock 환경설정 초기화 방법

코드블럭을 사용하다 보면 실수로 환경설정이 바뀌는 일이 발생하는 경우가 종종 있습니다. 예를 들면 다음과 같이 로그창이 보여 주는 것이 정상인데 실수로 드래그 해서 아래로 내리는 경우 다시 위로 끌어 올릴려고 할때 끌어 올릴 수가 없는 경우 프로그램을 삭제했다가 다시 재 설치해도 보이지 않고 Logs 를 선택해도 보이지 않는 경우 코드블럭을 처음 설치 하는 것과 동일한 환경을 만들고 싶은 경우 다음과 같이 수행하면 됩니다. 1. CodeBlock 를 종료 후 2. C:\Users\사용자계정\AppData\Roaming\CodeBlocks 디렉토리에 들어 갑니다.(여기서 사용자계정은 윈도우 로그인 계정입니다. 또한 사용자 계정에 들어 갔을때 AppData 가 보이지 않을 수 있는데 여기서 그냥 강제로 입력..

[컴퓨팅 사고력]하노이탑 문제(Hanoi Tower Problem) 이해하기

하노이탑 문제는 이산수학이나 프로그래밍의 재귀 함수에서 자주 나오는 유형의 문제입니다. 오늘은 하노이탑의 원리에 대해 알아 보도록 하겠습니다. 하노이탑이 유래된 것은 인도 베나레스에 있는 한 사원에 세상의 중심을 나타내는 큰 돔이 있고 그 안에 세개의 다이아몬드 바늘이 동판 위에 세워져 있습니다. 이 바늘 가운데 하나에는 신이 64개의 순금 원판을 끼워 놓았습니다. 가장 큰 원판이 바닥에 놓여 있고, 나머지 원판들이 점점 작아지며 꼭대기 까지 쌓아 있습니다. 이것이 신성한 브라흐마의 탑입니다. 브라흐마의 지시에 따라 승려들은 모든 원판을 다른 바늘로 옮기기 위해 밤낮 없이 차례로 제단에 올라 규칙에 따라 원판을 하나씩 옮기는데요. 해당 규칙은 다음과 같습니다. 1. 한번에 하나의 원판만 옮길수 있다. 2..

비둘기집 원리에 대해 알아 봅니다.

문제를 풀다 보면 비둘기집의 원리에 의해서 이렇게 된다고 정의를 하는 문제 유형들이 많이 나오는데. 오늘은 비둘기집의 원리가 무엇인지 확인을 해 보겠습니다. 비둘기집의 원리는 정말 단순합니다. 비둘기집은 2개이고 비둘기는 3마리입니다. 비둘기가 저녁에 잠을 자기 위해 비둘기 집에 들어가야 되는데... 그렇다면 반드시 한개의 비둘기집에는 비둘기가 2마리 이상이 존재하게 된다는 원리입니다. 가령 1번집에 비둘기 3마리 2번집에 0마리, 혹은 1번집에 2마리 2번집에 1마리, 1번집에 1마리 2번집에 2마리,1번집에 0마리 2번집에 3마리 이렇게 4가지 경우의 수 밖에 없는데 이 4가지 경우의 수에서 반드시 한개의 집에는 2마리 이상이 존재 하게 된다는 것인데... 이러한 정의를 위키백과에서는 다음과 같이 귀..

프로그래밍은 문제해결능력이다.

제가 알고리즘 공부를 하면서 자주 보는 책중 하나가 구종만님이 지은 알고리즘 문제해결 전략 이라는 책입니다. 그 책의 서문에 다음과 같은 글이 있어서 인용해 봅니다. 프로그래밍은 문제해결이다. 프로그래밍을 하기 위해서는 많은 것을 알아야 합니다. 이렇게 많은 제약 조건과 요구사항을 이해하고 최선의 방법을 찾아내는 능력을 문제해결 능력이라고 합니다. 그러나 문제 해결 능력을 훈련하기란 굉장히 어렵습니다. 문제해결능력은 추상적인 기술이기 때문입니다. 그렇다면 이러한 문제 해결 능력을 훈련하기 위한 방법은 무엇일까요? 이 책에서는 여러 프로그래밍 대회에 참가하면서 문제해결 기술을 익혀 가는 것을 추천하고 있습니다. 오늘은 학생들에게 꼭 필요한 문제해결능력을 키우기 위한 방법에 대해 알아 볼까 합니다. 1. 많..

알고리즘 대회에서 입력 데이터를 만드는 경우의 수를 생각하기

대회 준비를 하기에 좋은 온라인 저지는 일반적으로 jungol.co.kr 이나 백준 사이트를 많이 이용하고 있습니다. 저는 두 군데를 자주 이용하고 있는 편인데요... 일단 두군데의 장점은 다음과 같습니다. jungol.co.kr 은 제출 후 채점시 실패가 나온 경우에 채점 데이터를 보여 줍니다. 초보자에게는 채점 데이터를 보면서 자신이 어느 부분에서 생각을 못했는지 알 수가 있기 때문에 큰 도움을 받게 됩니다. 하지만 백준 사이트에서는 채점데이터를 보여 주지 않고 실패라는 메시지만 출력 됩니다. 이 경우에는 자신이 어디에서 잘 못 생각 하고 있는지를 알 수가 없습니다. 하지만 대회에서는 백준 사이트 처럼 실패를 했을때 채점 데이터를 보여 주지 않습니다. 따라서 대회를 준비하기 위해서는 백준 사이트 처럼..

(기하알고리즘) 반직선의 교점찾기 2

https://wondangcom.com/903 (기하알고리즘) 반직선의 교점 찾기 1 지난번에 두 선분의 교점 찾기에 대해 설명을 해 드린적이 있는데요. https://wondangcom.com/466 기하알고리즘] 두 선분의 교차점 찾기 위와 같은 그림에서 교차점이 발생하는 경우는 a,c,d,h 인 경우 입니다. 이.. wondangcom.com 지난번에 반직선의 교점 찾기 위해서 기본적인 클래스를 구현해 보았는데요. 오늘은 지난번에 만들어 놓은 클래스와 함수들을 이용해서 다음의 문제를 풀어 보도록 하겠습니다. 문제 원본 : http://jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=2555&sca=30d0 JUNGOL | 반직선이 만나는 경우의 수 > 문제은행..

(기하알고리즘) 반직선의 교점 찾기 1

지난번에 두 선분의 교점 찾기에 대해 설명을 해 드린적이 있는데요. https://wondangcom.com/466 기하알고리즘] 두 선분의 교차점 찾기 위와 같은 그림에서 교차점이 발생하는 경우는 a,c,d,h 인 경우 입니다. 이러한 두 선분의 교차점을 검사하는 방법으로는 다음과 같이 찾아 볼수가 있습니다. 1] 각 선분에 대해서 그 선분을 포함하는 양방향으로.. wondangcom.com 오늘은 반직선의 교점 찾기에 대해 설명을 해 볼까 합니다. 반직선은 한쪽은 막혀 있고 다른쪽 방향으로 진행을 하는 화살표를 가진 직선을 반직선이라고 합니다. 반직선의 교점을 찾기 위해서는 먼저 직선의 교점을 찾는 방법에 대해 확인을 해 봐야 하는데요. 지난번의 두선분의 교점은 시작점과 끝점이 주어졌기에 그 위치에서..

몬티홀 딜레마 퍼즐 풀어 보아요.

몬티홀 문제는 미국의 TV게임쇼에서 유래한 퍼즐인데요. 문제는 다음과 같습니다. TV 에서 퀴즈쇼를 진행 하는데 마지막 관문에서 세개의 문 중 하나에는 스포츠카가 숨어 있고 다른 두 개의 문에는 염소가 숨겨져 있습니다. 참가자가 세개의 문 중에서 하나를 선택하면 사회자는 나머지 두개의 문 중에 하나를 열어서 염소가 있는 문을 보여 주는데요. 이 때 사회자는 어떤 문에 스포츠카가 있고 어떤 문에 염소가 있는지를 알고 있습니다. 그리고 나서 참가자에게 "당신은 선택한 문을 바꾸시겠습니까?" 라고 묻습니다. 이 때 선택한 번호를 바꾸는 것이 유리할 까요 아니면 그냥 자신이 선택한 문을 고집하는 것이 유리할까 하는 것이 오늘의 문제입니다. 이러한 문제는 조건부확률을 배울때 퀴즈로 나오는 문제 중의 하나인데요. ..

도전하세요. 생각하며 만드는 프로그래밍 트레이닝 소개

원본 파일 : http://www.cberi.go.kr/home/sub.do?menukey=252&mode=view&no=1000618272 충청북도교육연구정보원 - 정보올림피아드 자료실 상세보기 정보시스템 고도화 고품질 서비스 제공 www.cberi.go.kr 충청북도 교육연구 정보원에서는 충북 학생 정보올림피아드(COI)를 준비하는 학생 및 지도 선생님을 위한 도전하세요 생각하며 만드는 프로그래밍 이라는 책자를 배포하고 있네요. 충청 북도에서는 학생 정보올림피아드를 자체적인 대회를 열고 있습니다. 대회 내용은 추진내용 및 일정 분야 : 수학적 지식 및 논리적 사고능력을 필요로 하는 알고리즘과 그 구현을 경시 학교대회 : 교내대회로 3~5월 중 실기평가 실시 안내 (학교자체계획에 의거하여 시기 및 평가..