본문 바로가기

반응형

전체 글

(142)
알고리즘 연습 2 10진수 2진수로 변환 10진수 : 19 2진수 ; 10011 public class Main { public static void main(String[] args) { int inputNum = 19; int bin[] = new int[100]; /* * 19/29 ... 1 * 9/24 ... 1 * 4/22 ... 0 * 2/21 ... 0 * 1/20 ... 1 * * 10011 => 19 */ int i = 0; int mok = inputNum; while(mok > 0) { bin[i] = mok % 2; mok /= 2; i++; } i--; // 마지막 나머지 값을 출력할 때 index가 1개 더 올라간만큼 빼주기 위해 for(; i>=0; i--) { System.out.print(..
알고리즘 연습 1 학생정보들을 저장하고, 학생이름으로 검색했을때 학번을 출력하는 프로그램 작성. - Student 클래스 생성 String name, no를 가짐 (이름과 학번) 학생들을 ArrayList에 저장 검색을 하겠느냐 y 종료하고싶으면 n 학생이름이 있는경우 그학생의 학번을 저장 학생이름이 없으면, 없는 학생이름이라고 출력 Student Class 코드 public class Student { public Student(String name, String no) { super(); this.name = name; this.no = no; } private String name; private String no; public String getName() { return name; } public void set..
너비 우선 탐색(BFS) & 깊이 우선 탐색(DFS) 그래프 탐색 방법 2가지 1. 너비 우선 탐색 2. 깊이 우선 탐색 너비 우선 탐색(Breadth First Search) 탐색을 할 때 너비를 우선으로 하여 탐색을 수행하는 탐색 알고리즘 큐(Queue) 사용 , 최대한 넓게 이동한 다음, 더 이상 갈 수 없을 때 아래로 이동 루트 노드(혹은 다른 임의의 노드)에서 시작해서 인접한 노드를 먼저 탐색 시작 정점으로부터 가까운 정점을 먼저 방문하고 멀리 떨어져 있는 정점을 나중에 방문하는 순회 방법 출처 https://developer-mac.tistory.com/64 깊이 우선 탐색 (Depth First Search) 최대한 깊이 내려간 뒤, 더이상 깊이 갈 곳이 없을 경우 옆으로 이동 스택(Stack) 사용 루트 노드(혹은 다른 임의의 노드)에서 시작..
완전탐색/이분탐색 탐색이란 탐색이란, 많은 데이터 속에서 원하는 데이터를 찾는 행위이다. 탐색의 종류 완전탐색, 이분탐색, 깊이우선탐색, 너비우선탐색, 문자열탐색, KMP, BM 완전탐색 모든 경우의 수를 다 해보는 방법 효율성 관점에선 최악의 방법이나 무조건 원하는 값을 탐색할 수 있다는 장점이 있음 종류 - Brute Force : for문과 if문을 이용하여 처음부터 끝까지 탐색하는 방법 - 비트 마스크 : 이진수 표현을 자료구조로 쓰는 기법 (AND, OR, XOR, SHIFT, NOT) - BFS(너비우선탐색), DFS(깊이우선탐색) - 재귀함수 - 순열 int Search(int[] arr, int n, int x) { for(int i=0; i
스택과 큐(Stack & Queue) 스택(Stack) : LIFO구조 마지막에 저장된 것을 제일 먼저 꺼내게 된다. 저장(push) 추출(pop) 큐(Queue) : FIFO구조 제일 먼저 저장한 것을 제일 먼저 꺼내게 된다. 저장(offer) 추출(poll) 스택은 배열로 구현하는게 좋음(순차적 삭제) 큐는 링크드리스트가 적합함(삭제시 자리이동이 필요없음) Stack의 메서드 boolean empty( ) : Stack이 비어있는지 알려줌 Object peek( ) : Stack의 맨 위에 저장된 객체를 반환(객체를 꺼내지는 않음) Object pop( ) : Stack의 맨 위에 저장된 객체를 꺼냄(비었을 때는 EmptyStack Exception발생) Object push ( ) : Stack에 객체를 저장 int search(Obj..
기본형 타입 기본형 타입 기본형 기본형 타입은 가장 기본이 되는 데이터 타입 - 정수형, 실수형, 문자형, 불린(boolean)형을 의미 논리형 논리형은 크기가 1byte이고 true와 false 중에 한 가지 값을 가질 수 있음. 정수형 정수형은 정수를 표현하는 데이터 타입인데 표현할 수 있는 정수의 범위에 따라 다양하게 제공 정수형에서 가장 자주 사용하는 int는 4byte long형은 8byte(int보다 더 큰 범위의 정수를 표현할때 사용) 실수형 실수형은 float, double형이 있음. float은 4byte, double은 8byte 리터럴 소스 코드의 고정된 값 리터럴은 일종의 값 ex) true, false , 10, 11.1, a 등 기본형 타입의 사용 방법 boolean a = true; or ..

반응형