전체 글 240

Unit 2. Assessment Review

Unit 2의 평가 문제를 피드백하겠습니다. Unit 2는 프로그래밍 컨셉, oop를 묻는 내용이 주를 이뤘습니다. Q1. Describe the programming process The programming process is an ordered list of steps or stages that is performed to produce a program. Understand the task or problem to be performed or solvedDetermine a high level strategy for performing the task or solving the problemElaborate the high level strategy to a detailed strategy tha..

Unit 2. The Building Blocks of Object-Oriented Programming

본 포스팅은 자바의 객체 지향 프로그래밍에 대한 기초적인 내용을 담고 있습니다. 그림 1. JVM Memory Layout 고전적 computer science의 언어 중 하나인 자바를 처음 사용할 시에 제가 느꼈던 장애 요소가 2가지 정도 존재했습니다. 첫 번째 , new의 키워드 의미를 정확하게 이해하지 못했습니다. 객체를 생성하는 것은 알겠는데, 그게 어떤 방식으로 생성되는지 알지 못했었습니다. 두 번째, 알아야되는 용어가 많아서 흐릿한 배경 지식을 가지고 코딩을 하였습니다. polymorphism, Inheritance, encapsulation, class variable, instance variable, subclass, super class, garbage collector 등이 내포한 의..

project euler 46. problem

크리스티안 골드바흐는 모든 홀수인 합성수를 (소수 + 2×제곱수)로 나타낼 수 있다고 주장했습니다.9 = 7 + 2×12 15 = 7 + 2×22 21 = 3 + 2×32 25 = 7 + 2×32 27 = 19 + 2×22 33 = 31 + 2×12이 추측은 잘못되었음이 밝혀졌습니다.위와 같은 방법으로 나타낼 수 없는 가장 작은 홀수 합성수는 얼마입니까? 합성수를 소수로 + 2 x 제곱수로 나타내는 증명이 잘못 되었음을 밝히기 위해선 크게 2가지 과정이 필요하다 생각했습니다. 첫 째, 합성수 셋을 만든다. 둘 째, 주어진 합성수를 특정 조건에 대입하여 거짓인지 증명한다. 합성수의 조건은 "소수가 아니며, 모두 홀수이어야 한다" 이고, 그 증명 방법에는 합성수를 만들때 사용한 합성수 이하 범위를 가지는 소..

Saylor Academy의 Computer Science Course 시작

공부한답시고 도서관에서 "이것이 C언어다, ~" 와 같은 제목의 c언어 서적을 집어 읽은 적이 1년 조금 넘은 것으로 생각됩니다. 이후 여러 다양한 프로그래밍 언어 관련 서적 또는 문서들을 찾아봤습니다. 이런 문서들은 c언어면 c언어를, Python이면 Python을 어떤 방식으로 사용해야 하는지에 초점을 맞춥니다. 이 과정에서 제가 가장 갈증을 느꼈던 부분은, 책 맨 앞장에서 소개하는 컴파일, 링킹, 인터프리터, 버츄얼 머신과 같은 것들이었습니다. 프로그래밍 언어를 사용하면서, 그 언어가 어떻게 구동되는지 모른다는게 영 마음에 안들었기 때문입니다. 그렇다면, 컴파일러 과목을 공부해야 하는데, 어디서 공부할지 찾고, 선택해야 했습니다. 일단 mooc 사이트들을 뒤져봤습니다. edx, cousera, ud..

MOOC 2016.12.06

project euler 41.problem

1부터 n까지의 숫자를 하나씩만 써서 만든 n자리 숫자를 팬디지털(pandigital)이라고 부릅니다. 2143은 4자리 팬디지털인데, 이 수는 동시에 소수이기도 합니다.n자리 팬디지털 소수 중에서 가장 큰 수는 무엇입니까? 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 # coding=utf-8import math def isPandigital(n): List = [1, 2, 3, 4, 5, 6 ,7, 8, 9] if len(n) == 9: n = int(n) while n!=0: tmp = n % 10 n /= 10 if List[tmp-1] != 0: List[tm..

project euler 44. problem

오각수는 Pn = n (3n − 1)/2 라는 공식으로 구할 수 있고, 처음 10개의 오각수는 다음과 같습니다.1, 5, 12, 22, 35, 51, 70, 92, 117, 145, ...위에서 P4 + P7 = 22 + 70 = 92 = P8이 됨을 볼 수 있습니다. 하지만 두 값의 차인 70 − 22 = 48 은 오각수가 아닙니다.합과 차도 모두 오각수인 두 오각수 Pj, Pk 에 대해서, 그 차이 D = | Pk − Pj | 는 가장 작을 때 얼마입니까? 123456789101112131415list =[]result = [] for n in range(1, 3000): list.append((n*(3*n-1))/2)cnt = 0for n1 in list: cnt +=1 for n2 in list[..

project euler 37. problem

소수 3797에는 왼쪽부터 자리수를 하나씩 없애거나 (3797, 797, 97, 7) 오른쪽부터 없애도 (3797, 379, 37, 3) 모두 소수가 되는 성질이 있습니다.이런 성질을 가진 소수는 단 11개만이 존재합니다. 이것을 모두 찾아서 합을 구하세요.(참고: 2, 3, 5, 7은 제외합니다) 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354import math def isPrime(n): if n == 2 or n == 3: return True if n % 2 == 0 or n == 1: return False for i in range(3, int(math.sqrt(..

리액티브에 관하여

리액티브는 4가지 속성으로 이루어진다. 응답성(responsive), 유연성(resilent), 신축성(elastic), 그리고 메시지 주도(message driven) 응답성은 신속하게 응답한다는 뜻이다. 유연성은 장애 허용으로 부분적인 에러나 예외는 이상현상이 아니라 평범한 동작의 일부로 여긴다. 신축성은 트래픽이 늘어나면 서버의 수가 자동으로 늘어나고 트래픽이 줄어들면 서버의 수가 자동으로 줄어드는 클라우드에서 제공하는 확장성을 의미한다. 메시지 주도는 소프트웨어를 구성하는 조각과 조각이 의사소통하는 방식이 메시지를 주고받는 방식으로 이루어진다는 의미이다. 이들은 보내고 잊는(fire-and-forget) 방식으로 주고받으며 소통한다. 리액티브 개발 패러다임에 담긴 메시지 - 임백준 칼럼니스트 님 ..

* News/Tech 2016.10.12

프로그래밍 중 프로그래머가 준수하면 좋을 습관들.

1. 출력 시 오른쪽으로 정렬합니다.(상황에 따라) "my out is your input" -> 출력할 때 오른쪽에 정렬한다면 앞자리 정렬 시 좀 더 편리하게 할 수 있습니다. ex)김상훈 123 667무리수 5 333유재석 1 294이외수 47 924장동건 113 62장현성 123 15하광훈 623 25하동훈 53 934하리수 5 235 *추가 - cmd 창에서 sort 명령어가 있습니다. '/?' 옵션으로 옵션 목록을 확인할 수 있습니다. text 파일을 정렬합니다. 기본으로 맨 앞자리를 기준으로 정렬합니다. '/+n' 옵션을 지정하면 몇 번째 자리부터 정렬할지 지정할 수 있습니다. '/R' 옵션으로 역정렬할 수 있습니다. 2. float 형은 써선 안됩니다. float 연산은 실수 계산을 하는 대..

* News/Tech 2016.10.05