ddolddol9905의 등록된 링크

 ddolddol9905로 등록된 네이버 블로그 포스트 수는 50건입니다.

파이썬 클래스 45강 [내부링크]

안녕하세요 매일코딩입니다~ 이번에는 파이썬을 이용해서 클래스를 만들어 보도록 하겠습니다. 클래스라는 것은 함수나 변수들을 모아놓은 하나의 상자입니다. 이 상자는 활용도가 매우 높기 때문에 정말 유용하게 사용될 수 있습니다. 또한 클래스라는 것을 잘 이용하면 정말 간단하고 깔끔하게 코드를 짤 수 있습니다. 클래스 사용법 class Name: #내용 이런 식으로 만들 수 있습니다. 또한 코드에 들어가기 전에 우리가 '인스턴스'에 대해서 알고 있어야 합니다. 인스턴스는 클래스에 의해서 만들어진 객체로 한 개의 클래스는 정말 많은 인스턴스를 만들 수 있습니다. 인스턴스를 만드는 방법은 MyName = Name() 이런 식으로.......

자바 퀵 정렬 알고리즘 84강 [내부링크]

안녕하세요 매일코딩입니다~ 이번에는 자바를 이용해서 퀵 정렬 알고리즘을 만들어 보도록 하겠습니다. 먼저 봐볼 코드는 한번 정렬했을 때의 코드입니다. 출력값: 퀵 정렬을 만듭니다. 배열의 크기 : 6 MyArr[0] = 1 MyArr[1] = 0 MyArr[2] = 7 MyArr[3] = 8 MyArr[4] = 9 MyArr[5] = 3 피벗 값은 : 8 피벗 이하에 존재하는 배열 1 0 7 3 피벗 이상에 존재하는 배열 9 8 코드 설명 1. 지금까지 많이 해왔던 배열의 칸과 들어갈 수를 만들어 주고 QuickAl(MyArr, Num)에 접근해 줍니다. 2. 처음 왼쪽 배열의 위치는 0, 오른쪽 배열의 위치는 Num - 1입니다. 또한 pivot 값은 배열의 중간값으로 설정합니다. 3. 먼.......

자바 병합 정렬 알고리즘 85강 [내부링크]

안녕하세요 매일코딩입니다~ 이번에는 자바를 이용해서 병합 정렬을 만들어 보도록 하겠습니다. 먼저 병합 정렬은 배열의 앞부분과 뒷부분을 나누어서 각각 정렬한 다음에 두 개의 배열을 병합하는 작업을 반복하면서 정렬하는 알고리즘입니다. 먼저 간단한 배열을 보면서 병합 알고리즘을 알아보도록 하겠습니다. 예를 들어 아래와 같이 1부터 8까지 배열이 있다고 가정해보겠습니다. [3, 7, 1, 4, 5, 2, 6, 8] 위의 배열을 먼저 두개로 쪼갭니다. [3, 7, 1, 4], [5, 2, 6, 8] 이렇게 쪼갤 수 있습니다. 또한 다시 두 개의 배열을 네 개로 쪼갭니다. 쉽게 생각해서 계속해서 절반씩 쪼개면 됩니다. [3, 7], [1, 4], [5, 2], [6, 8] 이제 마지막.......

파이썬 파일 입출력 42강 [내부링크]

안녕하세요 매일코딩입니다~ 이번에 파이썬으로 알아볼 것은 어떠한 파일을 만들고 읽고 써보는 코드를 만들어 보도록 하겠습니다. 문법에 대해서 간단히 알아보도록 하겠습니다. 파일 객체(변수명) = open(파일 이름, 파일 열기 모드) **파일 열기 모드는 아래와 같은 것을 가지고 있습니다. 이제 간단한. txt 파일을 만들어 보겠습니다. (맥북일 경우) (윈도우일 경우) 이런 식으로 단 2줄짜리 코드를 만들면 바탕화면이나 어떠한 파일 안에 newFile.txt 또는 MyFile.txt가 만들어졌을 겁니다. 저는 맥북을 사용하고 있어서 이러한 파일이 만들어졌습니다. 또한 위의 코드에서 우리는 MyFile.close()라는 코드를 볼 수 있습니다. 이것은 열.......

자바 단순 삽입 정렬 알고리즘 80강 [내부링크]

안녕하세요 매일코딩입니다~ 이번에는 자바를 이용해서 단순 삽입 정렬 알고리즘을 만들어 보도록 하겠습니다. 단순 삽입 정렬은 선택한 요소를 그보다 더 앞쪽에 정확한 위치에 삽입하는 정렬 알고리즘입니다. 단순 정렬과 다른 점은 단순 정렬은 값이 가장 작은 요소를 선택해서 오름차순에 알맞게 위치를 옮기는 점에서 차이를 가지고 있습니다. 단순 삽입 알고리즘의 작동 방식에 대해서 알아보도록 하겠습니다. 만약 이러한 배열이 있다고 생각을 해보도록 하겠습니다. 단순 삽입 정렬은 2번째 요소부터 선택하여 진행합니다. 이때 1은 4보다 작기 때문에 오름차순을 위해서는 앞에 존재해야 합니다. 그렇기 때문에 앞쪽에 1을 삽입합니다. .......

파이썬 파일 읽기 43강 [내부링크]

안녕하세요 매일코딩입니다~ 이번에는 파이썬으로 파일을 읽는 여러가지 방법에 대해서 알아보도록 하겠습니다. 파일을 읽는 방법에는 기본적으로 3가지의 방법이 존재합니다. 첫번째로 readline()을 이용하는 방법과 두번째로 readlines() 그리고 마지막으로 read()를 이용하는 방법이 존재합니다. 먼저 읽어야 할 파일이 존재해야 하기 때문에 우리가 저번에 사용한 코드 이 코드를 기반으로 만들어 보도록 하겠습니다. **맨 위에 보이는 파일 이름은 저장하고 싶은 위치를 선택한 다음 마지막에 /newFile.txt 이런 식으로 파일 이름(newFile)을 원하는 이름으로 만들어 주시길 바랍니다. 먼저 readline()을 알아보도록 하겠습니다. 출력값: 숫.......

자바 셸 정렬 알고리즘 이론 81강 [내부링크]

안녕하세요 매일코딩입니다~ 이번에는 셸 정렬 알고리즘에 대해서 알아보도록 하겠습니다. 셸 정렬은 전에 배웠던 단순 삽입 정렬에서 좀 더 보완하여 더 빠르게 정렬해 주는 알고리즘입니다. 단순 삽입 정렬의 가장 큰 장점은 바로 정렬을 마친 상태에 가까워질수록 속도가 빨라지는 장점을 가지고 있습니다. 하지만 단점으로는 삽입할 위치가 멀리 떨어져 있으면 for 문 내부에서 많은 반복이 필요하기 때문에 횟수가 많아집니다. 이러한 단점을 보완하기 위해서 셸 정렬에서는 먼저 정렬할 배열의 요소를 그룹으로 나눠서 각 그룹에 단순 삽입 정렬을 반복하고 이러한 그룹이 모여서 이동 횟수를 줄이는 알고리즘입니다. 먼저 간단한 배열을 만.......

파이썬 파일에 내용 추가, tell, seek 44강 [내부링크]

안녕하세요 매일코딩입니다~ 이번에는 파이썬을 사용해서 파일을 만들고 파일 안에 내용을 추가해 보도록 하겠습니다. 파일을 추가하기 위해서 우리는 'r'(read)라고 써져있는 부분을 추가(add) 'a'로 바꾸어야 합니다. MyFile = open("/Users/사용자이름/Desktop/newFile.txt", 'a')로 작성해 주셔야 합니다.(Mac Os일 경우) 그러면 한번 코드를 만들어 보겠습니다. 출력값: 30번째 줄입니다. 31번째 줄입니다. . . . 38번째 줄입니다. 39번째 줄입니다. **만약 무엇인가 존재하는 파일에 저장을 하게 된다면 'w'처럼 파일의 내용이 모두 사라지고 "30번째 줄입니다 ... 39번째 줄.......

자바 셸 정렬 알고리즘 82강 [내부링크]

안녕하세요 매일코딩입니다~ 저번에는 셸 정렬에 대해서 알아봤습니다. 이러한 개념을 가지고 셸 정렬 알고리즘을 코드로 구현해 보도록 하겠습니다. 출력값: 셸 정렬 알고리즘 배열의 크기는? : 4 MyArr[0] = 1 MyArr[1] = 8 MyArr[2] = 0 MyArr[3] = 3 셸 정렬을 사용해서 오름차순으로 정렬했습니다. MyArr[0] = 0 MyArr[1] = 1 MyArr[2] = 3 MyArr[3] = 8 **MyShell 내부에 대해서 자세히 알아보도록 하겠습니다. 코드 설명 1. MyShell(int[] MyArr, int Num)은 매개변수로 배열 MyArr[] 그리고 int Num을 가지고 있습니다. 2. 가장 외부 for 문에서 우리가 전에 배웠던 '4-정렬', '.......

자바 퀵 정렬 알고리즘 이론 83강 [내부링크]

안녕하세요 매일코딩입니다~ 이번에는 아주 빠른 정렬인 퀵 정렬에 대해서 알아보도록 하겠습니다. 퀵 정렬이란 찰리 앤터니 리처드 호어라는 사람이 직접 붙인 이름입니다. 알고리즘의 정렬 속도가 매우 빠릅니다. 먼저 간단한 배열을 보고 이해해 보도록 하겠습니다. 가장 먼저 리스트 안에 있는 한 요소를 선택해야 합니다. 이렇게 고른 원소를 피벗(pivot)이라고 합니다. 처음에 9를 pivot으로 잡겠습니다. 1. pivot은 5입니다. 1은 start 값이고 7은 end 값입니다. 8은 5보다 크기 때문에 잠깐 멈춥니다. 그 후에 end 값이 앞으로 올 때 2는 5보다 작기 때문에 8과 교환을 바로 해줍니다. 2. 6과 3 교환 6은 5보다 크기 때문에 잠깐 start는.......

자바 하노이 탑 알고리즘 75강 [내부링크]

안녕하세요 매일코딩입니다. 이번에는 자바를 이용해서 하노이의 탑을 만들어 보도록 하겠습니다. 하노이의 탑은 작은 원반이 위에 있고 큰 원반이 아래에 있는 탑을 말합니다. 이해를 돕기 위해 그림으로 설명하겠습니다. 이렇게 1번 기둥에 있는 원반을 3번 기둥으로 옮길 수 있습니다. 이번에는 하노이의 탑을 코드로 만들어 보도록 하겠습니다. 출력값: 원반의 개수는? : 3 탑[1]을 1기둥에서 3기둥으로 옮김 탑[2]을 1기둥에서 2기둥으로 옮김 탑[1]을 3기둥에서 2기둥으로 옮김 탑[3]을 1기둥에서 3기둥으로 옮김 탑[1]을 2기둥에서 1기둥으로 옮김 탑[2]을 2기둥에서 3기둥으로 옮김 탑[1]을 1기둥에서 3기둥으로 옮김 코드 설명 1. 먼저.......

자바 체스 8퀸 문제 알고리즘 76강 [내부링크]

안녕하세요 매일코딩입니다. 이번에 자바로 만들어볼 알고리즘은 체스 8퀸입니다. 8퀸 문제는 재귀 알고리즘을 이해하기 위해 정말 많이 사용이 됩니다. 8퀸의 문제는 바로 이것입니다. --서로 공격하여 잡을 수 없도록 8개의 퀸을 8 * * 체스판에 놓으세요.-- 이런 식으로 퀸을 놓을 수 있습니다. 이러한 조합이 무려 92가지나 있습니다. 첫 번째 조건: 코드를 짜기 전에 수학적으로 퀸을 배치해 보도록 하겠습니다. 8개의 퀸을 배치하는 조합은 64! - 56!입니다. 무려 178,462,987,637,760가지의 조합이 만들어집니다. 하지만 이러한 모든 조합을 검사하는 것은 현실적으로 거의 불가능합니다. 즉, 우리는 몇 가지의 조건이 더 필요합니다. 두.......

자바 버블 정렬 알고리즘 이론 77강 [내부링크]

안녕하세요~ 이번에는 자바를 이용해서 정렬(sort) 알고리즘에 대해서 배워보도록 하겠습니다. 정렬은 어떠한 데이터 집합을 일정한 순서로 나열하는 작업을 말합니다. 이 알고리즘을 이용해서 데이터를 정렬하게 된다면 검색을 더욱 쉽게 할 수 있습니다. 정렬에는 오름차순(ascending order) 정렬이 존재하고 내림차순(descending order)가 존재합니다. 또한 정렬에는 내부 정렬과 외부 정렬이 존재합니다. 내부 정렬은 정렬한 모든 데이터를 하나의 배열에 저장할 수 있는 경우에 사용되는 알고리즘이고 외부 정렬은 정렬할 데이터가 많아서 하나의 배열에 저장할 수 없는 경우 사용하는 알고리즘입니다. 이번 정렬 알고리즘에서 다룰 내용은.......

파이썬 입력값이 많은 함수 40강 [내부링크]

안녕하세요 매일코딩입니다~ 이번에는 파이썬을 이용해서 입력값의 개수에 상관없이 사용이 가능한 함수를 만들어 보도록 하겠습니다. 지금까지 함수를 만들 때 우리는 인수의 개수와 매개변수를 항상 같은 수로 마쳐왔습니다. 출력값: 35 위의 코드처럼 인수인 A1, B2이고 매개변수는 A, B입니다. 그렇기 때문에 인수의 개수와 매개변수의 개수가 같습니다. 하지만 이번에는 인수의 개수에 상관없는 코드를 만들어 보도록 하겠습니다. 출력값: 10 코드 설명 1. a, b, c, d는 각각 1, 2, 3, 4를 가지고 있습니다. 2. def Sum(*args)는 함수의 입력값이 몇 개든지 상관이 없이 사용할 수 있습니다. 그 이유는 args라는 변수가 입력값들을 전무 모.......

자바 버블 정렬 알고리즘 78강 [내부링크]

안녕하세요 매일코딩입니다~ 이번에는 자바를 이용해서 버블 정렬 알고리즘을 코드로 구현해 보도록 하겠습니다. 버블 알고리즘에서 꼭 알고 있어야 할 부분은 바로 현재 배열을 바로 앞 배열과 비교하면서 이동한다는 것입니다. 또한 비교 횟수는 첫 번째 패스는 n - 1회, 두 번째 패스는 n - 2회 이렇게 가기 때문에 모두 합치면 이러한 수식이 나오게 됩니다. 그러면 바로 버블 정렬 코드를 만들어 보도록 하겠습니다. 출력값: 버블 정렬 알고리즘 배열의 크기 : 5 MyArr[0] : 8 MyArr[1] : 2 MyArr[2] : 0 MyArr[3] : 9 MyArr[4] : 1 오름차순으로 정렬했습니다. MyArr[0] : 0 MyArr[1] : 1 MyArr[2] : 2 MyArr[3] : 8 MyArr[4] : 9 코드 설.......

파이썬 입력과 출력 41강 [내부링크]

안녕하세요 매일코딩입니다~ 이번에는 파이썬을 이용해서 입력과 출력을 해보도록 하겠습니다. 입력을 하기 위해서는 우리가 input이라는 것을 사용해야 합니다. 같이 input을 사용한 코드를 보겠습니다. 입력값: Hello World 출력값: Hello World 위의 코드는 input의 예시를 간단히 보여주는 코드입니다. input은 사용자의 입력을 받는 함수입니다. 코드 설명 1. a는 사용자로부터 input()을 받습니다. 2. a를 출력합니다. 예제 1) 숫자를 입력받고 그 숫자를 출력해 보세요. 입력값: 123 출력값: 숫자를 입력해 주세요. 123 입력된 숫자는 123입니다 코드 설명 1. 맨 위에 print를 출력합니다. 2. Num은 input()을 받습니다. 3. 아래의 print를.......

자바 단순 선택 정렬 알고리즘 79강 [내부링크]

안녕하세요 매일코딩입니다~ 이번에는 자바를 이용해서 단순 선택 정렬 알고리즘에 대해서 알아보도록 하겠습니다. 단순 선택 정렬 알고리즘이란 가장 작은 요소부터 선택해서 알맞은 위치로 옮겨서 순서대로 정렬하는 알고리즘을 뜻합니다. 알고리즘을 코드로 만들기 전에 단순 선택 정렬이 어떻게 작동하는지 알아보도록 하겠습니다. 여기에서 가장 작은 요소는 바로 1입니다. 가장 먼저 1을 선택해서 정렬을 시작합니다. 이때 가장 앞에 있는 배열의 요소인 5와 가장 작은 값을 가지고 있는 1을 교환합니다. 이렇게 가장 작은 요소인 1이 배열의 앞에 오게 되었습니다. 이어서 두 번째로 작은 요소인 2를 선택해서 위와 같이 정렬해 줍니다. 이.......

자바 큐, queue 만들기 73-2강 [내부링크]

안녕하세요~ 이번에는 자바 큐의 메서드인 인큐와 디큐 그리고 데이터를 피크 하는 코드를 만들어 보도록 하겠습니다. 가장 먼저 인큐 메서드 enque를 만들어 보도록 하겠습니다. enque의 역할 이 부분은 큐 안에 데이터를 인큐하는 메서드입니다. 만약 큐에 데이터가 들어간다면 성공한 인큐 값을 그대로 반환합니다. 하지만 만약 큐가 가득 차서 인큐가 불가능하다면 OverflowMyQueueExcpetion으로 예외를 던집니다. 코드 설명 1. return 값으로 int형을 리턴하고 매개변수로 x를 받습니다. 또한 MyQueue가 가득 차면 예외를 던집니다. 2. 만약 num(우리가 넣은 값) 이 max 값보다 크다면 이건 큐의 크기보다 우리가 입력한 데이터가 더 많기 때.......

파이썬 while 조건문 35강 [내부링크]

안녕하세요~ 이번에는 조건만큼 반복하는 while 문에 대해서 알아보도록 하겠습니다. while 문은 반복해서 문장을 수행해야 할 때 사용하는 조건 문중 하나입니다. while 조건: 수행할 문장 1 수행할 문장 2 '조건' 이 True라면 while 문을 실행하고 '조건' False라면 while 문을 종료합니다. 위와 같이 사용이 됩니다. 간단한 코드를 보면서 이해해 보도록 하겠습니다. 예제 1) 숫자를 증가시켜봅시다. 출력값: 6 7 8 9 10 코드 설명 1. x는 5라는 숫자를 가지고 있습니다. 2. while 문에서 x < 10이 True 인지 False 인지 판단합니다. 3. x가 5이기 때문에 5 < 10 즉 True이므로 while 문을 실행합니다. 4. x가 1이.......

파이썬 for 문 36강 [내부링크]

안녕하세요~ 이번에는 파이썬을 이용해서 for 문을 사용해 보도록 하겠습니다. for 문은 파이썬의 특징을 가장 잘 나타내는 문법 중 하나입니다. for 문은 정말 많은 코드에서 유용하게 사용됩니다. for 문법: for 변수 in 리스트(또는 튜플, 문자열, 숫자): 수행할 문장 1 수행할 문장 2 수행할 문장 3 이런 식으로 사용할 수 있습니다. 먼저 리스트를 이용해서 코딩을 해보도록 하겠습니다. 출력값: 1 2 3 4 5 코드 설명 1. Num은 리스트 [1, 2, 3, 4, 5]를 가지고 있습니다. 2. 가장 먼저 1이 i에 대입하고 print를 진행합니다. 3. 이렇게 리스트의 마지막 요소까지 이것을 반복합니다. 이번에는 튜플을 이용해서 for 문을 사용해 보도록 하겠.......

자바 큐, queue 만들기 73-3강 [내부링크]

안녕하세요 매일코딩입니다~ 이번에는 자바 큐의 메서드 중 indexof, clear, capacity, size, isEmpty, isFull, dump에 대해서 알아보도록 하겠습니다. 먼저 indexof 메서드에 대해서 알아보도록 하겠습니다. indexof란 큐의 배열에서 x와 같은 데이터가 저장되어 있는 위치를 알아서 리턴해주는 메서드입니다. 코드 설명 1. for 문의 범위는 0부터 num까지입니다. 2. int index를 만들어 줍니다. index는 (i + front) % max의 값이 곧 index의 값입니다. 이 부분은 조금 해깔리기 때문에 표로 보여드리겠습니다. i = 0 -> 1 -> 2-> 3 index = 78 -> 55 -> 100 -> 32 이렇게 되기 때문에 만약 i 가 0이고 front가 3이.......

파이썬 다양한 for 문 with 구구단 37강 [내부링크]

안녕하세요~ 이번에는 파이썬의 for 문을 가지고 여러 가지 코드를 짜보도록 하겠습니다. 이번에 배울 것은 range, for 문에서 튜플 사용하기 그리고 마지막으로 이중 for 문을 사용해서 구구단 표를 만들어 보도록 하겠습니다. 먼저 for 문에 range 함수를 사용해 보도록 하겠습니다. 출력값: 0 1 2 3 4 5 6 7 8 9 코드 설명 1. Num은 10을 가지고 있습니다. 2. range라는 것은 숫자를 자동으로 숫자 리스트로 만들어 줍니다. 즉 10이라고 한다면 [0, 1, 2, ... 8, 9]를 만들어 줍니다. 그리고 출력합니다. 이번에는 for 문을 이용해서 합계를 만들어 보도록 하겠습니다. 예제 1) 0부터 10까지 더한 값이 나오게 코드를 짜보세요. 출력값: 55 코.......

파이썬 함수 def 38강 [내부링크]

안녕하세요 매일코딩입니다~ 이번에는 파이썬에서 함수를 사용해 보도록 하겠습니다. 함수는 어떤 일을 하나요? 함수는 입력을 가지고 어떠한 일을 한 후 그 결과물을 내놓는 것을 함수가 합니다. 프로그램에서 함수는 정말 중요합니다. 가끔 코딩을 하다 보면 같은 내용을 적는 경우가 많습니다. 함수는 이러한 귀찮은 작업을 최소화해 줍니다. 파이썬 함수의 구조에 대해서 알아보도록 하겠습니다. 파이썬 함수의 구조 def 함수 이름(매개변수): (수행할 문장 1) (수행할 문장 2) (수행할 문장 3) **def는 함수를 만들 때 사용하는 문자입니다. 출력값: 56 코드 설명 1. def Sum(d, e, f)를 먼저 보도록 하겠습니다. 2. def Sum(d, e, f): retu.......

파이썬 여러 가지 함수 39강 [내부링크]

안녕하세요 매일코딩입니다~ 이번에는 파이썬을 이용해서 여러 가지 함수의 형태를 만들어 보도록 하겠습니다. 함수에는 입력값이 없는 함수, 리턴 값이 없는 함수, 입력값과 리턴 값이 없는 함수로 나눌 수 있습니다. 먼저 입력값이 없는 함수를 알아보도록 하겠습니다. 입력값이 없는 함수 출력값: 123 코드 설명 1. def는 함수를 뜻합니다. 2. 함수는 NoPar이라는 이름을 가지고 있고 파라미터가 존재하지 않습니다. 3. 123을 리턴합니다. 4. Function 은 NoPar()을 가지고 있습니다. NoPar()은 123을 가지고 있고 이걸 Function이 가집니다. 5. 출력합니다. 리턴 값이 없는 함수 출력값: 12 코드 설명 1. 함수의 이름은 NoPar이고 매개변수로.......

자바 큐, queue 만들기 73-4강 마지막 [내부링크]

안녕하세요 매일코딩입니다. 이번에는 자바 큐를 테스트하기 위한 테스터 파일을 만들어 보도록 하겠습니다. 먼저 테스터 파일의 코드를 보겠습니다. 출력값: 현재 데이터의 수 : 0 / 64 1: 인큐, 2: 디큐, 3: 피크, 4: 덤프, 0: 종료 1 인큐할 데이터 : 2 현재 데이터의 수 : 1 / 64 1: 인큐, 2: 디큐, 3: 피크, 4: 덤프, 0: 종료 1 인큐할 데이터 : 3 현재 데이터의 수 : 2 / 64 1: 인큐, 2: 디큐, 3: 피크, 4: 덤프, 0: 종료 4 23 현재 데이터의 수 : 2 / 64 1: 인큐, 2: 디큐, 3: 피크, 4: 덤프, 0: 종료 2 디큐할 데이터는 2 현재 데이터의 수 : 1 / 64 1: 인큐, 2: 디큐, 3: 피크, 4: 덤프, 0: 종료 4 3 현재 데이터의 수 : 1 / 64 1: 인큐.......

자바 재귀 알고리즘 74강 [내부링크]

안녕하세요 매일코딩입니다. 이번에는 자바를 이용해서 재귀 알고리즘을 만들어 보도록 하겠습니다. 재귀란 무엇인가요? 재귀는 어떤 사건이 자기 자신을 포함하고 다시 자기 자신을 사용하여 정의하는 것을 재귀라고 합니다. 쉽게 말해서 같은 사진이 사진 안에 계속해서 반복되는 것을 말합니다. 재귀 알고리즘으로 만들 수 있는 가장 쉬운 건 바로 팩토리얼 입니다. 팩토리얼은 ! 를 사용해서 5! = 5 * 4 * 3 * 2 * 1을 뜻합니다. 이것을 한번 코드로 구현해 보도록 하겠습니다. 출력값: 정수를 입력해 주세요. 4 팩토리얼을 구합니다. 4의 팩토리얼은24입니다. 코드 설명 1. while(true)를 이용해서 while 안에 있는 문을 break 만나기.......

파이썬 if 문 and, or, not 31강 [내부링크]

안녕하세요~ 이번에는 if 문을 이용해서 and, or, not을 사용해 보도록 하겠습니다. 이번에는 몇 가지 간단한 예제를 보겠습니다. 예제 1) 돈이 있고 차가 있으면 차를 타고 가세요. 만약 둘 중에 하나라도 없으면 걸어가세요. (AND) 출력값: 차를 타세요. 코드 설명 1. Money와 Car는 각각 1을 가지고 있습니다. 2. if Money and Car를 해석하면 Money 그리고 Car이기 때문에 둘 다 true 여야 if 문이 실행됩니다. (0은 False를 뜻하고 0이 아니면 true를 뜻합니다.) 3. 둘 다 1이기 때문에 if 문안에 있는 '차를 타세요.' 가 실행이 됩니다. 예제 2) 돈 또는 차가 있으면 차를 타고 가세요. (OR) 출력값: 걸어가세요. 코드 설명 1. M.......

자바 스택, stack 만들기 71-4강 마지막 [내부링크]

안녕하세요~ 이번에는 스택을 사용하는 프로그램을 만들어 보도록 하겠습니다. 우리가 지금까지 MyStack이라는 코드를 만들어 봤습니다. 그러면 한번 잘 만들었는지 한번 알아봐 볼까요? 이번에는 새로운 클래스 파일이 필요합니다. 프로그램을 실행하기 위한 코드를 한번 보도록 하겠습니다. 출력값: 현재 데이터의 수 : 0 / 32 1: 푸시, 2: 팝, 3: 피크, 4: 덤프, 0: 종료 1 데이터 32 현재 데이터의 수 : 1 / 32 1: 푸시, 2: 팝, 3: 피크, 4: 덤프, 0: 종료 1 데이터 64 현재 데이터의 수 : 2 / 32 1: 푸시, 2: 팝, 3: 피크, 4: 덤프, 0: 종료 3 Peek 한 데이터는 64입니다. 현재 데이터의 수 : 2 / 32 1: 푸시, 2: 팝, 3: 피크, 4: 덤프 0: 종.......

파이썬 in, not in 조건문 32강 [내부링크]

안녕하세요~ 이번에는 파이썬을 이용해서 in과 not in 조건문을 사용해 보도록 하겠습니다. 이 조건문은 리스트, 튜플, 문자열에서 사용할 수 있다. 먼저 in 먼저 알아보도록 하겠습니다. in 은 '~안에'라는 뜻을 가지고 있습니다. 리스트, 튜플, 문자열의 코드를 한번 봐도 록 하겠습니다. 출력값: True False 코드 설명 1. 먼저 MyIn이라는 변수는 "[1, 2, 3] 리스트 안에 1이 있는가?"라는 조건문입니다. 1은 [1, 2, 3] 안에 있으므로 True를 리턴합니다. 2. 먼저 My2In이라는 변수는 "[1, 2, 3] 리스트 안에 4가 있는가?"라는 조건문입니다. 4는 [1, 2, 3] 안에 없으므로 False를 리턴합니다. 이번에는 튜플을.......

파이썬 if 문 elif 33강 [내부링크]

안녕하세요~ 이번에는 파이썬의 if 문을 이용해서 else, elif 문법을 사용해 보도록 하겠습니다. 지금까지 우리는 if와 else 문을 사용해서 문장을 판단해 왔습니다. 하지만 if와 else만을 사용해서는 더 다양한 조건문을 판단하기는 어렵습니다. 아래와 같은 문장을 한번 보겠습니다. "원화와 달러가 있으면 비행기를 타고, 원화가 있고 달러가 없으면 원비행기를 타고, 원화도 없고 달러도 없으면 배를 타고 가라" 위의 문장을 보면 조건을 판단하는 부분이 두 군데가 존재합니다. 먼저 지갑에 원화를 먼저 확인해야 하고 그다음 달러를 확인해야 합니다, 만약 이러한 문장을 if와 else만을 사용하면 어떻게 만들어야 하나요? 한번 아.......

자바 큐, queue 이론 72강 [내부링크]

안녕하세요~ 이번에는 큐에 대해서 알아보도록 하겠습니다. 큐는 스택과 비슷하게 데이터를 일시적으로 쌓아 놓은 자료구조입니다. 큐와 스택의 가장 큰 차이점은 스택은 선입 후출을 하고 큐는 선입 선출을 합니다. 선입선출은 FIFO로 First In First Out이라는 뜻을 가지고 있습니다. 즉, 가장 먼저 넣은 데이터를 가장 먼저 꺼내는 자료구조입니다. 큐에 데이터를 넣는 작업을 인큐(enqueue)라고 하고, 데이터를 꺼내는 작업을 디큐(dequeue)라고 합니다. 또한 데이터를 꺼내는 쪽을 프런트라고 하고, 데이터를 넣는 쪽을 이러라고 합니다. 링 버퍼(Ring Buffer) 이번에는 링 버퍼로 큐를 만들어 보도록 하겠습니다. 지금까지는 큐를 만들 때.......

파이썬 if 문 pass 34강 [내부링크]

안녕하세요~ 이번에는 파이썬을 이용해서 pass를 사용해 보도록 하겠습니다. pass는 '넘긴다'라는 뜻을 가지고 있습니다. 그러면 한번 pass를 사용한 코드를 보겠습니다. 예제 1) 만약 달러가 있으면 가만히 있고 달러가 없으면 일을 하세요. 출력값: 코드 설명 1. 출력값이 존재하지 않는 이유는 Dollar가 Wallet 안에 있기 때문에 if 문 다음 문장인 pass가 실행되었고 아무런 결괏값도 나오지 않는 것을 확인할 수 있습니다. 또한 아래와 같이 else 문을 출력할 수도 있습니다. 출력값: 일을 하세요. 코드 설명 1. Wallet은 Won을 가지고 있습니다. 2. Dollar가 Wallet에 없기 때문에 else 문을 실행합니다. 또한 elif에 pass 출력.......

자바 큐, queue 만들기 73-1강 [내부링크]

안녕하세요~ 이번에는 자바를 이용해서 큐를 만들어 보도록 하겠습니다. 먼저 우리가 알고 있는 링 버퍼로 큐를 구현하는 간단한 프로그램을 만들어 보도록 하겠습니다. 코드 설명 1. priavte int max는 큐의 용량을 말합니다. 2. private int front는 첫 번째 요소의 위치를 말합니다. 3. private int rear는 마지막 요소의 위치를 말합니다. 4. private int num은 현제 데이터 수를 말합니다. 5. private int[] queue는 큐의 본체(틀)을 뜻합니다. 6. 만약 실행할 때 큐가 비어있으면 아래의 코드를 이용해서 예외를 시킵니다. public class EmptyMyQueueExcpetion extends RuntimeException { public EmptyMyQueueExcpetion() { } } 7. 만약 실.......

자바 스택, stack 만들기 71-1강 [내부링크]

안녕하세요~ 이번에는 스택을 코딩을 통해서 만들어 보도록 하겠습니다. 여기에서 스택에 저장되는 값은 가장 기본값인 int형을 사용하겠습니다. 먼저 스택에 기둥인 본체 배열을 보도록 하겠습니다. 스택 본체에는 총 3가지가 필요합니다. 첫 번째로 스택의 용량, 두 번째로 스택의 포인터 그리고 마지막으로 스택의 본체 가 필요합니다. 또한 인덱스가 0인 요소가 스택의 바닥 부분에 해당됩니다. 간단한 예시를 보여드리겠습니다. 스택이 들어갈 때 가장 윗부분을 바닥 부분이라고 하고 가장 아랫부분을 꼭대기 부분이라고 합니다. 즉, 3은 바닥 부분이고 5는 꼭대기 부분입니다. 이제 본격적으로 스택의 코드를 보도록 하겠습니다. 코드 설명.......

파이썬 while 문 27강 [내부링크]

안녕하세요~ 이번에는 파이썬을 이용해서 while 문을 사용하는 방법에 대해서 알아보도록 하겠습니다. 이번에는 기본적으로 알아야 할 간단한 while 문이기 때문에 나중에 더 깊게 보도록 하겠습니다. while 문은 아래와 같이 생겼습니다. 문법 형태: while (조건문): (수행할 문장) (조건문)이 True라고 한다면 계속해서 (수행할 문장)을 실행합니다. 만약 조건문이 True에서 False로 바뀐다면 while 문을 종료합니다. 간단한 코드를 보겠습니다. 출력값: 10 9 8 7 6 코드 설명 1. a라는 변수는 처음에 10을 가지고 있습니다. 2. while a > 5가 뜻하는 것은 while 10 > 5입니다. 10은 5보다 크니까 while 문을 실행합니다. 3. print(a)로.......

파이썬 변수 28강 [내부링크]

안녕하세요~ 이번에는 파이썬을 이용해서 변수를 사용해 보도록 하겠습니다. 이미 우리는 많은 변수들을 사용해 왔습니다. MyList = [1, 2, 3, 4] MyTuple = (1, 2, 3, 4) 등등 여기에서 변수란 MyList, MyTuple처럼 어떠한 값에 이름을 지어주는 걸 변수라고 합니다. 또한 변수를 만들 때 "=" 기호를 사용해서 만들어야 합니다. 변수는 왜 사용하나요? 쉽게 생각해서 만약에 우리가 여러 가지 상자를 가지고 있다고 생각합니다. 상자 안에 가위, 풀, 연필이 있다고 생각하고 친구에게 가위를 가져와 달라고 하면 그 친구는 어떤 상자에 있는지 모르기 때문에 못 가져옵니다. 하지만 아래와 같이 이름을 만들어 준다면.......

자바 스택, stack 만들기 71-2강 [내부링크]

안녕하세요~ 이번에는 전 강의를 이어서 스택을 만들어 보도록 하겠습니다. Push 메서드 이번에 만들어 볼 것은 push 메서드입니다. 즉, 데이터를 push 하는 메서드를 만들어 보도록 하겠습니다. 코드 설명 1. 전달받은 데이터 int형 x를 배열 요소 stack[pointer]에 저장하고 스택 포인터를 증가시킵니다. 또한 스택이 가득 차서 더 이상 push가 불가능하면 OverflowMyStackException을 던집니다. 아래 표는 이해를 돕기 위한 표입니다. (표는 왼쪽에서부터 오른쪽으로 읽으시면 됩니다.) Pop 메서드 이번에는 스택의 꼭대기에서 데이터를 뽑고 그 값을 반환하는 메서드를 만들어 보도록 하겠습니다. 코드 설명 1. 스택 포인터 ptr의 값을 감소.......

파이썬 변수 리스트 복사 29강 [내부링크]

안녕하세요~ 이번에는 리스트를 복사할 때 변수가 어떻게 바뀌는지 알아보도록 하겠습니다. 간단한 코드를 보겠습니다. 출력값: [12, 2, 3, 4] [12, 2, 3, 4] 코드 설명 1. 먼저 MyList를 만들어 줍니다. MyList는 1, 2, 3, 4를 가지고 있습니다. 2. MySList라는 변수는 MyList의 리스트를 대입한 것을 알 수 있습니다. 3. 그런 다음에 MyList[0]에 12를 넣었습니다. 그리고 결괏값으로 우리는 MySList 또한 바뀐 것을 확인할 수 있습니다. 4. 이러한 이유는 MyList와 MySList가 같은 리스트인 [1, 2, 3, 4] 을 가리키고 있기 때문입니다. MyList와 MySList는 이름만 다를 뿐 완전히 같은 리스트를 가리키고 있는 변수입니다. 그렇다면 MySList 변.......

화면 해상도란? [내부링크]

안녕하세요~ 이번에는 화면 해상도에 대해서 알아보겠습니다. 해상도란 이미지를 표현하는데 얼마나 많은 픽셀로 이루어졌는 것을 뜻합니다. 예를 들어서 가장 대표적인 화질인 1080p 해상도의 모니터의 경우, 이 디스플레이의 해상도는 1920 x 1080입니다. 즉, 화면의 폭은 1,920 Piexl, 높이 1080 Piexl입니다. 그렇기 때문에 화면에 2,073,600 Piexl이 표시됩니다. 화면의 해상도가 높을수록 낮은 해상도의 모니터보다 높은 해상도의 모니터가 더 많은 픽셀로 구성되므로 이미지가 더 뚜렷해집니다. Piexl은 무엇인가요? 픽셀은 디스플레이에 최소의 물리적 포인트이며 해상도를 구성하는 가장 기본 구성 요소이기도 합니다. 따라서 픽셀은 화.......

자바 스택, stack 만들기 71-3강 [내부링크]

안녕하세요~ 이번에는 자바로 스택 만들기 3번째 시간입니다. 이번에 만들어볼 것은 바로 스택의 모든 요소를 삭제하는 메서드, 용량을 확인하는 메서드, 데이터의 개수를 확인하는 메서드, 스택이 비어있는지 나타내는 메서드, 스택이 가득 찼는지 검사하는 메서드 그리고 마지막으로 스택 안에 있는 모든 데이터를 표시하는 메서드를 만들어 보도록 하겠습니다. clear 메서드 먼저 스택의 모든 요소를 삭제하는 메서드를 만들어 보도록 하겠습니다. 코드 설명 1. clear 메서드는 스택에 쌓여있는 모든 데이터를 삭제하는 메서드입니다. pointer에 0을 집어넣어서 스택을 삭제합니다. capacity 메서드 코드 설명 1. 이 메서드는 스택의 용량을 반.......

파이썬 if 문 30강 [내부링크]

안녕하세요~ 이번에는 파이썬으로 if 문을 만들어 보도록 하겠습니다. if는 "만약" 이란 뜻을 가지고 있습니다. 즉, 만약 조건이 true라면 실행을 하고 조건이 false라면 실행을 하지 않습니다. 간단한 예시를 들어보겠습니다. "차가 있으면 차를 타고 가고 차가 없으면 걸어가세요"라는 예시를 들어보겠습니다. 만약 차가 존재한다(true) 라면 차를 타고 차가 존재하지 않는다(false) 라면 걸어간다 라고 생각하시면 됩니다. 코드를 한번 보겠습니다. 출력값: 걸어가세요 코드 설명 1. Car라는 변수는 2를 가지고 있습니다 2. 만약 Car 가 1이라면 '차를 타고 가세요를 출력합니다.' 3. 만약 Car 가 1 이 아니라.......

자바 BinarySearch 메서드 68강 [내부링크]

안녕하세요~ 이번에는 자바의 binarySearch 메서드를 알아보도록 하겠습니다. 자바에서는 배열에서 이진 검색을 하는 메서드를 기본 라이브러리로 제공을 합니다. 이진 검색 라이브러리의 메서드로는 java.util.Arrays 클래스의 binarySearch가 존재합니다. 이러한 메서드를 이용하면 이진 검색 메서드를 직접 코딩할 필요가 없고 또한 모든 자료형 배열에서 검색이 가능한 장점이 있습니다. binarySearch 메서드는 자료형에 따라 9가지 방법이 존재합니다. 1. static int binarySearch(byte[] a, byte key) 2. static int binarySearch(char[] a, char key) 3. static int binarySearch(double[] a, double key) 4. static int binarySearch(flo.......

파이썬 딕셔너리(dictionary) 요소 추가 23강 [내부링크]

안녕하세요~ 이번에는 파이썬의 딕셔너리를 사용해서 요소를 추가하고 삭제하는 방법에 대해서 알아보도록 하겠습니다. 딕셔너리를 추가하는 방법은 새로운 Key를 이용해서 Value를 설정하면 딕셔너리에 추가됩니다. 또한 딕셔너리를 순서를 따지지 않습니다. 간단한 코드를 보면서 이해해 보도록 하겠습니다. 출력값: {'a': 1} {'a': 1, 'b': 2} 코드 설명 1. MyDi는 {'a' : 1} 을 가지고 있습니다. Key는 a이고 Value는 1입니다. 2. MyDi['b'] = 2를 사용해서 Key 가 b이고 Value가 2인 값을 추가합니다. 3. 출력합니다. 또한 아래와 같이 Ket 값을 숫자나 문자열로 해도 상관없습니다.......

자바 제네릭, Generic 69강 [내부링크]

안녕하세요~ 이번에는 자바에서 사용되는 제네릭이라는 것을 알아보도록 하겠습니다. 제네릭은(Generic)은 '일반적인'이라는 뜻을 가지고 있습니다. 즉, 자바에서는 데이터의 형식에 의존하지 않고 하나의 값이 여러 가지 데이터 타입을 가질 수 있도록 하는 방법을 제네릭'이라고 말합니다. 그러면 제네릭은 어떻게 사용해야 하나요? 객체<타입> 객체 이름 = new 객체<타입>(); 이렇게 사용할 수 있습니다. 이러한 제네릭을 사용하는 이유는 만약 우리가 어떠한 코드를 만들 때 String, int, double 등을 많이 지원하고 싶다면 하나하나 클래스는 만드는 것보다 제네릭을 이용해서 만드는 것이 더 효율적입니다.......

자바 스택, stack 이론 70강 [내부링크]

안녕하세요~ 이번에는 자바를 사용해서 스택이란 걸 만들어 보겠습니다. 스택이란? 스택은 데이터를 일시적으로 저장하기 위해 사용하는 자료구조입니다. 스택의 입력과 출력 순서는 후입선출이라고 합니다. 영어로는 LIFO(Last In First Out)라고도 합니다. 즉, 쉽게 말해서 가장 마지막에 넣은 데이터가 가장 먼저 나오게 됩니다. 이러한 스택이 존재한다면 처음에 들어가는 숫자는 1이라고 할 수 있고, 5는 가장 마지막에 들어가는 숫자를 알 수 있습니다. 스택에서 데이터를 넣는 작업을 푸시(Push)라고 하고, 스택에서 데이터를 꺼내는 과정을 팝{Pop)이라고 합니다. 위의 표에서 스택에 푸시하고 팝 하는 과정을 만들어 보았습니다. 맨 위.......

파이썬 딕셔너리(dictionary) Key, Value 24강 [내부링크]

안녕하세요~ 이번에는 파이썬 딕셔너리를 이용해서 Key 리스트, 그리고 Value 리스트를 만들어 보도록 하겠습니다. 딕셔너리에서 Key 리스트는 Key 값만 모아서 만든 리스트를 의미합니다. 만들어진 리스트 요소들의 순서는 일정한 규칙이 있는 것이 아니라 상황에 따라서 바뀔 수 있습니다. 딕셔너리는 Key로 value를 찾기 때문에 순서에 상관하지 않고 중요하지 않습니다. 간단한 코드를 보겠습니다. 출력값: dict_keys(['a', 'b', 3, 1]) 코드 설명 1. Key 값은 a, b, 3, 1이므로 dict_Keys(['a', 'b', 3, 1])로 출력이 된 걸 확인하실 수 있습니다. 또한 다중 딕셔너리에서 Key 값을 얻을 수 있습니.......

파이썬 딕셔너리(dictionary) items, clear 25강 [내부링크]

안녕하세요~ 이번에는 파이썬의 딕셔너리를 이용해서 아이템과 클리어를 사용해 보도록 하겠습니다. items 이란 함수는 key와 value의 쌍을 튜플로 묶은 값을 리스트로 돌려줍니다. 출력값: dict_items([('a', 123), ('b', 456), ('c', 789)]) 코드 설명 1. MyDict 은 key 값으로 a, b, c를 가지고 있고 Value 값으로 123, 456, 789를 가지고 있습니다. 그 후에 Key와 Value를 쌍으로 튜플로 묶습니다. ('a', 123), ('b', 456), ('c', 789)로 만든 다음에 리스트로 돌려줍니다. 그렇기 때문에 [('a', 123), ('b', 456), ('c', 789)] 리스트로 나옵니.......

파이썬 딕셔너리(dictionary) get 26강 [내부링크]

안녕하세요~ 이번에는 파이썬 딕셔너리를 이용해서 get을 알아보도록 하겠습니다. 먼저 get(value) 함수는 value라는 key에 대응되는 Value를 찾아서 돌려줍니다. 간단한 코드를 보고 이해해 보도록 하겠습니다. 출력값: 123 코드 설명 1. MyDict.get('a')는 123을 돌려줍니다. 또한 MyDict['a']를 사용해도 123을 돌려줍니다. 여기에서 돌려주는 값은 완전히 같은 값을 돌려줌으로 둘 중에 하나를 골라서 사용하시면 됩니다. 또한 다중 딕셔너리에서도 사용이 가능합니다. 출력값: 234 코드 설명 1. MyDict['c']를 이용해서 {'in': 234, 'in2': 567}에 접근합니다 여기에서 get('in&#x2.......

파이썬 튜플(tuple) 더하기, 곱하기 21강 [내부링크]

안녕하세요~ 이번에는 튜플을 이용해서 +, *를 이용해서 튜플을 더하고 반복하는 방법을 알려드리겠습니다. 먼저 튜플을 합치는 것을 먼저 보여드리도록 하겠습니다. 출력값: (1, 2, '안녕', '하세요', 'a', 'b') ('a', 'b', 1, 2, '안녕', '하세요') +를 사용하면 두 개의 튜플을 합칠 수 있습니다. 튜플 사이에 ' + ' 기호는 2개의 튜플을 합쳐서 만약에 MyTuple + MyTuple1이라고 하면 (1, 2, "안녕", " 하세요) + ('a', 'b')이므로 결괏값으로 (1, 2, '안녕', '하세요', 'a',.......

파이썬 딕셔너리(dictionary) 22강 [내부링크]

안녕하세요~ 이번에는 파이썬을 이용해서 딕셔너리(dictionary)라는 기능을 이용해 보도록 하겠습니다. 딕셔너리는 사전이라는 뜻을 가지고 있습니다. 예를 들어서 'Gun'이라는 단어는 '총'이라는 뜻을 가지고 있고, 'Play'라는 단어에는 대표적으로 '놀다'라는 뜻이 있습니다.(물론 다른 뜻도 있지만 예시를 들기 위해 '놀다'라고 했습니다.) 이렇게 딕셔너리는 key 값과 value 값이 한 쌍으로 이루어져 있는 자료형을 말합니다. 위에서 'Gun'은 key 값이라고 할 수 있고 '총' 은 value 값이라고 생각할 수 있습니다. 문법 형태 --> {Key1:Value, Key2: Value2 , Key.......