오늘 구해볼 내용은, 바로 소수 구하기이다.알고리즘 문제중에 메인보다는 곁들여져서 문제가 나오는 경우가 많은데 이를테면, 어떤 순열을 구해서 그 수가 소수인지 판별 후 최대값을 구해보라. 이런식의 문제류가 많은데, 소수의 정의부터, 어떻게 구할 수 있는지 한번 생각해보도록 하자.#소수란?1과 자신만을 배수로 갖는 수이다. 이를 테면 2, 3, 5, 7, 11... 이런수를 소수라고 할 수 있는데 1은 소수가 아니다. 사실 100이라는 수를 입력받았을때 소수인지 아닌지 판별할 수 있는 방법은 무엇일까? 2부터 100까지 쭈욱 나눠보고 100이 아닌 수중에 나눠진다면 소수가 아니기에 아래와 같이 구현할 수 있다.#include int main(void){int num;int flag = 0;scanf("%d..
Coding 의 중요성이 부각되는 요즘, 초등학생 부터 코딩하는 사고방식을 배우고자 코딩 교육에 대한 과정들이 추가되고 있다. 대학교때 멋모르고 배우던 코딩을 어린시절부터 배웠다면 과연 나는 잘 할 수 있었을까 생각해보자면, 그건 아닐 것이다. 코딩은 기술이기도 하지만, 창작물이다. 음악, 소설, 드라마 등은 우리가 잘 만들었다고 말하려면 음악의 변화가 기술적으로 두드러진다던지, 소설의 기승전결이 잘 구성되었다던지 하는 기반에서 말하지 않는다. 얼마나 자신의 마음을 감동시킬수 있느냐에 따라 우리는 음악을 잘 만들었다 또는 소설, 드라마를 잘 썻다고 말할 수 있을 것이다. 코딩도 그렇다. 하나의 창작물로써 우리가 계속 고민하고 만들어나간다면 다른 창작물이 계속해서 생겨날 수 있고, 어떤 문제를 푼다고 할지..
이번에 풀어볼 알고리즘은 카프리카 상수 구하기이다. 어떤 자연수 n이 있을때, d(n)을 n의 각 자릿수 숫자들과 자기 자신을 더한 숫자라고 정의하자. 예를 들어 d(91) = 9 + 1 + 91 = 101 이다. 이 때, n을 d(n)의 제너레이터(generator)라고 한다. 위의 예에서 91은 101의 제너레이터 이다.어떤 숫자는 하나 이상의 제너레이터를 가지고 있는데 101의 제너레에티는 91뿐 아니라 100도 있다. 그런데 반대로 제너레이터가 없는 숫자들도 있고, 이런 숫자는 수학자 카프리카가 셀프넘버라 이름을 붙였다.예로 1, 3, 5, 7, 9, 20, 31은 셀프 넘버들이다.입력) 첫 번째 줄에 테스트 케이스의 수 T가 주어진다.(1
Raspberry Pi와 Windows 10 IoT core를 이용해서 가장 간단한 실습해보려고 한다. 버튼과 Text를 이용해서 이름을 입력하고 버튼을 클릭하면 미리 등록한 인사말을 화면에 뿌리는 것인데, app 형태로 Raspberry pi에 올려서 실행하며 C# Project 이용할 것이다.우선 C# Project를 생성해야 한다. 생성하려면 우선 Windodws IoT Core Template는 설치해야하는데 메뉴 > 도구 > 확장 및 업데이트에서 찾을 수 있다.설치가 됬는지 확인해 본다. 오늘 만들어 볼 App은 Hello World 출력하는 것이므로 Visual C#으로 Blank App을 하나 만들어야 한다.이제 먼가 만들어질 줄 알았는데! 아래와 같은 팝업이 뜬다. 팝업에서 개발자 설정 링..
전 시간에 순열에 대해서 재귀를 이용해 구현해 보았다.DFS(Depth First Search)라고도 불리는 이 방법은, 처음부터 끝까지 탐색해서 찾아보고 다시 올라와서 그 다음 찾는 방식인데 이제 여러분은 DFS 알고리즘을 기본적으로 알고 있는 셈이라고 생각하면 된다. DFS는 결국 Backtracking이라고 불리는 알고리즘 문제와 유사하기 때문에 한번에 순열, DFS, Bactkracking 문제를 풀 어보면서 감을 늘려야 한다. 이번 시간엔 실전 문제를 한번 해볼까 한다. 다음은 문제이다. 3X3 마방진이라는 수열이 있다.아래 수와 같이, 가로행의 합과, 세로열의 합이 모두 같은 수가 되게 만드는 경우 마방진 수열이라고 한다. 1 2 3 3 2 1 2 2 2 첫번째 열 합 : 1 + 2 + 3 =..
수학에서 순열을 공부해 본 기억은 있지만 당체 생각이 나지 않는다, 다만 순열과 조합의 개념을 이용한 알고리즘 문제는 굉장히 많다. # 순열보통 4H3 이런식으로 표기하는데 4개의 숫자 중 3개를 선택해서 나타낼 수 있는 모든 수열이 되겠다.(중복 포함)계산은 4 X 3 X 2 = 24가지 인데 어떤 수열이 나오는지 보자.1, 2, 3, 4 중에 3가지 숫자를 뽑아서 만들어 보면 진짜 24개가 나온다.123 124 132 134 142 143 213 214 231 234 241 243312 314 321 324 341 342412 413 421 423 431 4323개의 숫자를 뽑을때 중복을 허용한다는 의미는 같은 숫자를 뽑을 수 있다는게 아니라, 123, 132 같이 숫자를 같은 거를 뽑았으나 위치가 ..
2015년 여름쯤에 집에서 소소한 개발을 하기위해 RasberryPi2 를 구입하였다.구입하면서 HDMI Cable도 사고, 이리저리 굴러다니던 SD카드도 확보하고, 저렴한 가격으로 Linux PC도 하나 Setup 해놨다. Rasberry에 Rasbian OS를 올려 기본적으로 Linux PC 환경처럼도 쓸수 있고, Tizen도 올려서 Tizen 처럼도 쓸수 있었으며, Yocto Project로 Tizen을 빌드해서 올려보기도 했지만, 왠지...흥미가 붙지 않았다. 그러던 찰나 이번 Windows 10 IoT 세미나를 듣게 되면서, 정말 간편하게 무언가를 뚝딱 만들어 볼수 있겠구나 싶어 집에 잠자고 있던 RasberryPi와 notebook의 OS를 Window 10으로 Upgrade 해서 Rasber..