목록전체 글 (96)
초코레
선형 검색(linear search) 또는 순차 검색(sequential search) 배열에서 원하는 값을 가진 요소를 찾을 때까지 맨 앞에서부터 순서대로 요소를 검색하는 알고리즘 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 //선형 검색 public class SeqSearchFor { //길이가 n인 배열 a에서 key와 같은 요소를 선형 검색하여 그 요소의 인덱스를 반환한다 private static int seqSearch(int[] a, int n, int key) { for (int i = 0; i
배열의 요소나 클래스의 필드는 초깃값으로 초기화가 되지만 메서드 안에서 선언한 지역 변수는 초깃값으로 초기화되지 않는다. 배열의 길이는 프로그램을 컴파일할 때가 아니라 실행할(runtime) 때 결정된다. 난수 생성에 사용할 수 있는 java.util.Random 클래스와 java.lang.Math 클래스 배열 안의 두 요소를 교환하는 것은 자주 사용하므로 독립적인 메서드로 구현하자. 소수 구하기 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 public class PrimeNumber2 { //소수 구하기 public static void main(String[] args) { int counter ..
키보드로 숫자와 문자열 입력하기 1 2 3 4 5 6 7 8 9 import java.util.Scanner; public class A { public static void main(String[] args) { //System.in은 키보드와 연결된 표준 입력 스트림(standard input stream) Scanner scanner = new Scanner(System.in); int i = scanner.nextInt(); } Colored by Color Scripter cs 메서드 자료형 nextBoolean() boolean nextByte() byte nextShort() short nextInt() int nextLong() long nextFloat() float nextDouble(..
선택 정렬보다 훨씬 빠른 정렬 알고리즘 분할 정복 전략 기본단계 : 원소의 개수가 0이거나 1 기준원소 : 배열에서 원소하나를 고른다. 분할 : 모든 원소를 기준원소보다 작은 숫자로 이루어진 배열, 기준원소보다 큰 숫자들로 이루어진 배열로 나눈다. 두 개의 하위 배열에 대해 재귀적으로 퀵 정렬을 호출하고 그 결과를 합치면 전체 배열이 정렬된다. def quicksort(array): if len(array) < 2: return array # 기본단계 else: pivot = array[0] # 기준원소 # 분할 less = [i for i in array[1:] if i pivot] return quicksort(less) + [pivot] + quicksort(greater) def main(): p..
Git Bash 명령어 정리 Git Bash는 윈도우 환경에서도 Linux & Unix 계열의 명령어를 통해 Git을 제어할 수 있도록 한다. 사용할 수 있는 명령어 조회 현재 위치 조회 루트 디렉토리로 이동 해당 디렉토리로 이동 창 비우기 현재 위치의 파일 목록 조회 현재 위치에 폴더 생성 $ git $ pwd $ cd /c $ cd 폴더명 $ clear $ ls $ ls -al $ mkdir 폴더명 현재 디렉토리를 git으로 저장소로 만든다(현재 디렉토리를 버전 관리한다), 생성된 .git 디렉토리는 버전관리에 관한 정보가 담긴다. git 폴더 상태를 조회한다. 여기서 Untracked files: 아래는 버전관리가 되고 있지 않음을 나타낸다. 새로 추가한 파일이기 때문이므로 git 에게 버전 관리 ..
함수가 자기 자신을 호출하는 것 재귀 함수는 기본 단계와 재귀 단계로 나누어져 있다. 기본 단계 : 무한 반복으로 빠져들지 않게 하는 부분 재귀 단계 : 자기 자신을 호출하는 부분 상자 안에서 열쇠를 찾는 코드를 의사코드로 나타내기 ※ 의사코드 : 문제와 풀이 방법을 간단한 코드 형태로 설명한 것 while 반복문을 사용한 경우 def look_for_key(main_box): pile = main_box.make_a_pile_to_look_through() while pile is not empty: box = pile.grab_a_box() for item in box: if item.is_a_box(): pile.append(item) elif item.is_a_key(): print "열쇠를 찾았..
변수를 선언하는 var를 const와 let으로 대체 변수 선언 시에는 const를 사용하고 다른 값을 대입해야 하는 상황이 생겼을 때 let을 사용 var const let 함수 스코프 : 0if문의 블록과 관계 없이 접근 가능 블록 스코프 : 블록 밖에서 변수에 접근 불가 초기화 시 값을 대입해야 한다(필수) 초기화 시 값을 대입하지 않아도 된다(선택) 한 번 값을 대입하면 다른 값을 대입할 수 없다 다른 값을 대입할 수 있다 if(true){ var x = 1; } console.log(x); if(true){ const y = 2; } console.log(y); //Uncaught ReferenceError: y is not defined 문자열을 만들 때 백틱(`)으로 감쌀 수 있고 문자열 안..
Node.js는 크롬 V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임입니다. Node.js는 이벤트 기반, 논블로킹 I/O 모델을 사용해 가볍고 효율적입니다. Node.js의 패키지 생태계인 npm은 세계에서 가장 큰 오픈 소스 라이브러리 생태계이기도 합니다. - 노드 공식 사이트 노드는 자바스크립트 애플리케이션이 서버로서 기능하기 위한 도구를 제공하므로 서버 역할을 수행할 수 있다. 자바스크립트 런타임 런타임 : 특정 언어로 만든 프로그램을 실행할 수 있는 환경 노드는 오픈소스 자바스크립트 엔진인 V8과 비동기 I/O libuv 라이브러리를 사용한다. libuv 라이브러리는 노드의 특성인 이벤트 기반, 논블로킹 I/O 모델을 구현하고 있다. 이벤트 기반(event-driven) 이벤트가 발생할 때..
프로그래밍할 때 사용할 수 있도록 미리 정의해둔 문자조합이다. 주로 출력물을 보기 좋게 정렬하는 용도로 이용된다. 활용빈도가 높은 것은 아래와 같다. ''' \n개발(줄바꿈) \t수평 탭 \\문자 \ \'단일 인용부호 ' \"이중 인용부호 " '''