스터디 19

java 5주차

5-1) 반복반복문이 사용되는 이유: 반복적인 수행을 간결하게 작성하기 위해. 특정 코드를 반복해서 실행할 때 사용된다. 반복문에는 while 과 for 문이 존재함 5-2) while문 1while(조건){문장} 조건을 확인하고 조건이 충족될 경우 블럭 속 문장이 시행된다.조건이 만족되지 않을 경우 루프가 계속 실행된다. 5-3) while문 2문제) 숫자가 1씩 증가할때 1,2,3, 덧셈   식을 바꾸고 싶을 때 변경해줄 변수가 적다는 것이 장점 문제)i 부터 end까지 num 개 더하는 식   10 부터 1씩 증가하는 숫자를 3개 더해주는 루프10+11+12=33임 확인 가능 5-3)do while문while문과는 다르게 조건을 만족하지 않아도 한번은 문장을 수행함. do{      문장}while..

자료구조 스터디 4주차

4-1)소수 구하기 핵심 이론소수: 1과 자기 자신 외 약수가 존재하지 않는 수 기본 원리에라토스테네스의 체:1. 구하고자 하는 범위만큼 1차원 배열 생성2. 2부터 시작하고 현재 숫자가 지워지지 않을 때 현재 선택된 숫자의 배수에 해당하는 수를 배열에서 끝까지 탐색하며 지움.이때 처음 선택한 숫자는 지우지 않는다.3. 배열의 끝까지 반복해준 후 배열에남아 있는 모든 수 출력이중 for문을 사용하므로 시간 복잡도는 N^2최적화 정도에 따라서 실제 속도는 n(log(logn))임.배수 삭제 과정에서 바깥쪽 for문을 생략하는 경우가 빈번하게 발생하기 때문에라토스테네스의 체는 소수를 구하는 일반적 방법으로 이용된다.  4-2)오일러 피자주 등장하지는 않음오일러 피 함수 p(n)의 정의는1부터 n까지의 숫자중..

java 스터디 4주차

4-1)조건문 특정 조건에 따라 다른 코드를 실행하는 문장조건문을 만족하면 블럭 안 문장이 실행되고 아닌 경우 else가 실행되거나 else문이 없는 경우 다음 문장으로 넘어간다.  4-2)else-if문여러가지 케이스가 존재하는 경우 사용된다.if문의 나열을 통해서도 케이스를 검사할 수 있지만 그럴 경우 코드가 불필요하게 길어지고 앞에서 검사한 부분을 뒤에서 다시  검사하게 되는 상황이 발생하게 된다.이 상황에서 결과를 중복 확인하는 상황을 피하기 위해 else if문 사용.else문은 있어되 되고 없어도 된다.4-3)if문과 if-else문 if(조건)...if(조건) 각각의 조건을 서로에게 영향을 받지 않고 검사하는 경우 if(조건)...else(조건)각각의 조건을 검사하되 공통되는 부분의 검사는 ..

java 스터디 3주차

3-1)연산자연산자의 종류산술연산자 증감연산자비교연산자논리연산자대입연산자삼항연산자연산자와 피연산자연산자는 기호를, 피연산자는 숫자를 의미. 3-2)문자열 더하기+ 기호를 통해 문자열을 합칠 수 있다. 문자열+ 숫자의 경우 자바가 숫자를 문자열로 바꿔서 출력시켜줌  3-3)연산자 우선순위java의 연산자 우선순위는 수학적 연산에서의 우선순위와 같음.괄호를 사용하여 우선순위를 조절해 줄 수 있음.연산이 복잡할 경우 괄호로 식을 명시적으로 표현해주는 것이 더 좋다.괄호단항 연산자산술연산자shift 연산자비교 연산자등식 연산자비트 연산자논리연산자삼항연산자대입 연산자 일반적으로 상식선에서 우선순위를 따지면 된다.우선순위가 애매할 경우 괄호를 사용하면 된다!  3-4)증감연산자증가 및 감소 연산자++;--;변수의 ..

자료구조 스터디 3주차

3-1)깊이 우선 탐색  DFS가장 많이 사용되는 탐색 방법.깊이우선 탐색: 그래프 완전 탐색 기법중 하나. 시작 노드에서 출발하여 한 쪽 분기를 정해 최대 깊이까지 탐색을 마친 후 다음 분기로 너머가 탐색을 수행.재귀 함수, 스택 자료구조를 이용한다. 시간 복잡도: O(노드 수+엣지 수)깊이 우선 탐색에서 재귀함수를 이용하므로 스택 오버플로우에 유의해야 함. 한번 방문한 노드를 다시 방문하지 않으므로 노드 방문 여부를 페크할 배열이 필요하다. 대부분 인접리스트로 표현.후입선출의 특성을 가진다. 실제로는 스택 자료구조보다 스택의 성질을 갖는 재귀함수로 구현하는 경우가 더 많다.   [수행과정]  1. dfs를 시작할 노드를 정한 후 사용할 자료구조(인접리스트)를 초기화한다.  2. 스택에서 노드를 꺼내고..

자료구조 스터디 2주차

2-1) 버블정렬 로직이 단순하고 구현이 쉽다는 장점이 있다. 데이터의 인접요소끼리 먼저 비교하고 swap을 통해 정렬한다. 시간복잡도는 n^2으로 다른 정렬보다 많은 시간이 걸린다. 앞에서부터 뒤로가며 요소를 비교해 정렬하여 맨 마지막 인덱스에 위치하게되는 요소는 가장 큰 요소인게 확정된다. 따라서 루프를 1회 실행할때 마다 마지막에 위치하게되는 요소가 확정되어 n^2의 시간복잡도를 가지게 된다. 만약 특정 루프의 전체 영역에서 한번도 스왑이 일어나지 않았다면 전체가 정렬되어있다는 의미이므로 루프를 탈출해도된다. 2-2) 선택정렬 최대나 최소의 데이터를 찾아가며 선택하는 방법. n^2의 시간복잡도로 빠른 방법은 아님. 정렬에 따라 최댓값또는 최솟값을 찾고 남은 정렬부분 가장 앞 데이터와 스왑하는 방식...

java 스터디 2주차

2-1) 변수 하위 폴더 생성 방법 variable이라는 이름의 하위 폴더 생성 폴더 아래에 새로운 java class 생성! (관례상 클래스 이름의 첫 문자는 대문자로 써주기) 패키지 자바 파일을 구분하기 위한 폴더 정도임. Variable 이라는 패키지를 생성했다면 해당 패키지 파일 첫줄에 pakeage Variable; 처럼 소속된 패키지를 선언해주어야 함. 파바 파일이 위치하는 패키지와 pakeage Variable; 선언 위치가 같아야함 변수 변할 수 있는 값. 저장공간 변수의 선언과 초기화의 예시. 중복된 값들을 한번에 변경가능하게 해준다. a의 값을 변경해줬더니 출력 결과가 모두 변한 것을 확인할 수 있음. int 형 변수 정수를 보관할 수 있는 데이터 저장소. 변수를 만드는것을 변수 선언이..

자료구조 스터디-1주차

1-1)배열과 리스트 파이썬의 리스트는 배열의 특성도 내포하고있음. 파이썬에서의 리스트는 배열의 특성까지 가지게 구현되어있음. 인덱스로 접근이 가능하고 가변적으로 변하는 크기라는 장점만 가지고있다. 자료구조에서 배열: 메모리의 연속된 공간에 값이 채워져있는 형태의 자료구조. 값을 인덱스를 통해 직접 접근할 수 있다. 새로운 값의 삽입이나 삭제가 어렵다는 단점이 있다. 배열의 크기는 선언시에 지정할 수있으며 한번선언한 이후 크기를 조절할 수 없다. 자료구조에서 리스트: 값과 포인터를 묶은 노드라는것을 포인터로 연결한 자료구조. 값에 접근하려면 인덱스가 없기때문에 head 포인터로부터 순차적으로 접근해야한다는 단점이 있다. 포인터로 연결되어 데이터 삽입삭제의 속도가 빠르고 선언할 때 별도의 크기를 지정하지 ..

java 스터디 1주차

1-1)개발 환경 설정 자바의 개발 툴로 많이 사용되는 이클립스와 인텔리제이. 빠른 속도와 편의성의 장점으로 현재 자바개발 툴로는 주로 인텔리제이가 사용된다. 인텔리제이는 무료버전과 유료버전 두가지 형태가 있는데, 현재 강의에서는 무료 버전으로 진행한다. 자발 개발의 운영체제로는 주로 mac이 사용된다. 하지만 윈도우에서 개발을 해도 무방하다. 인텔리제이 윈도우 무료 버전 설치 방법 1. 홈페이지에서 아래로 스크롤해 무료버전 다운로드를 찾고 .exe로 다운로드 2. 다운로드 경로를 설정 3.설치 옵션 설정 4. 설치완료 새프로젝트 생성 프로그램 실행 방법 코드 왼쪽 초록색 삼각형을 눌러 run 1-2)다운로드한 소스코드 실행방법 new-> project from existing sourcecode 클릭 ..