꾸준히 개발하자

고정 헤더 영역

글 제목

메뉴 레이어

꾸준히 개발하자

메뉴 리스트

  • 홈
  • 태그
  • 방명록
  • 분류 전체보기 (115)
    • Computer Graphics (58)
      • SCOP (9)
      • HumanGL (9)
      • Graphics Pipeline (10)
      • ALEngine (21)
      • Hiking (9)
    • 자료구조와 알고리즘 (43)
      • 백준 (14)
      • 자료구조, 알고리즘 (29)
    • Java 공부 (5)
      • Java 공부 (1)
      • Java 주차별 공부 (3)
      • 더 자바, 코드를 테스트하는 다양한 방법 (1)
    • 리눅스 (8)
      • 리눅스 기초 (8)

검색 레이어

꾸준히 개발하자

검색 영역

컨텐츠 검색

전체 글

  • 스택(Stack)과 큐(Queue) 그리고 덱(Deque)

    2023.01.10 by Banjosh

  • 제너릭스와 Comparable, Comparator

    2023.01.09 by Banjosh

  • Java import선언과 Java.lang 패키지 + 클래스 메서드와 인스턴스 메서드

    2023.01.09 by Banjosh

  • 배열 검색 알고리즘 (선형 검색, 이진 검색)

    2023.01.09 by Banjosh

  • 기본 자료구조 (클래스)

    2023.01.06 by Banjosh

  • 기본 자료구조 (배열+수학알고리즘)

    2023.01.06 by Banjosh

  • 드모르간 법칙

    2023.01.05 by Banjosh

  • 더 자바, "코드를 테스트 하는 다양한 방법" 1부 JUnit 5 (1~2)

    2023.01.03 by Banjosh

스택(Stack)과 큐(Queue) 그리고 덱(Deque)

스택(Stack) 이란? 스택이란 데이터를 일시적으로 쌓아 놓는 자료구조로, 데이터의 입력과 출력 순서는 후입선출 (LIFO : Last In First Out)이다. 배열로 스택을 구현하기 배열로 스택을 구현해보면 훨씬 알기 쉬울 것이다. 우선 IntStack이라는 Class를 통해 스택의 구조를 알아보자. class Intstack{ // int형 고정 길이 스택 int[] stk; // 스택을 구현하기 위한 배열 int capacity;// 스택 크기 int ptr; // 스택 포인터 Intstack(int max){ ptr = 0; capacity = max; try{ stk = new int[capacity]; // 스택 본체용 배열 생성 }catch (OutOfMemoryError e){ //..

자료구조와 알고리즘/자료구조, 알고리즘 2023. 1. 10. 22:24

제너릭스와 Comparable, Comparator

제너릭스 (Generics) 제너릭스는 처리 대상의 자료형에 의존하지 않도록 클래스 혹은 인터페이스를 구현하는 기능이다. 즉 제너릭 클래스(인터페이스)는 자료형 문제로부터 자유롭고 안전하다. 형식은 클래스(인터페이스) 이름 바로뒤에 형식의 매개변수를 붙여 선언한다. - class 클래스 이름 {/* ... */} (만약 매개변수가 여러개면 {/*...*/} - interface 인터페이스 이름 {/* ... */} 다음과 같이 매개변수의 이름을 작성하기 위해서는 규칙이 있다. 1) 대문자는 1개를 사용한다.(소문자는 가급적 사용x) 2) 컬렉션(collection) 내부 요소의 자료형은 element의 머리글자인 E를 사용한다. (컬렉션은 자바에서 제공하는 기본 자료구조를 모은것을 말한다.) 3) 맵(M..

자료구조와 알고리즘/자료구조, 알고리즘 2023. 1. 9. 23:13

Java import선언과 Java.lang 패키지 + 클래스 메서드와 인스턴스 메서드

Import 선언 Java에서 클래스나 인터페이스 등의 자료형(type)은 반드시 어떤 패키지에 소속되어있다. 예를 들면 Scanner 클래스와 Random 클래스가 소속된 곳은 java.util 패키지이다. 원래라면 클래스나 인터페이스등을 사용하고 싶을 때 패키지이름을 포함한 클래스 혹은 인터페이스를 적어서 사용해야한다. 하지만 매번 그렇게 쓰면 비효율적이기 때문에 맨 위에 import 선언을 이용해 한번만 패키지명을 포함한 클래스 혹인 인터페이스 선언한다. 이렇게 되면 다음부터는 클래스 혹은 인터페이스이름만으로 사용이 가능해진다. Java.lang 패키지 위와 같이 import선언으로 충분이 효율적이게 됐지만 Java는 더욱 더 편한 기능을 제공한다. Java 프로그래밍에 필요한 가장 기본적인 클래스..

자료구조와 알고리즘/자료구조, 알고리즘 2023. 1. 9. 18:02

배열 검색 알고리즘 (선형 검색, 이진 검색)

검색 알고리즘 고르는 법 배열에서 검색을 하는 경우 보통 검색 속도가 빠른 알고리즘을 선택한다. 하지만 검색과 더불어 데이터를 추가, 삭제하는 작업이 필요한 경우 데이터의 추가, 삭제에 필요한 비용도 고려하여 알맞은 알고리즘을 골라야 한다. 따라서 어떤 목적을 이루기 위해 알고리즘을 선택한다면 종합적인 요소를 잘 고려해서 선택해야 한다. 선형 검색 선형 검색이란 원하는 값을 찾을 때까지 맨 앞부터 순서대로 검색하는 방법이다. while문으로 구현하면 다음과 같다. public class Main { static Integer line(int key, int[] a){ int i = 0; while(true){ if(i==a.length) return -1; // i가 a의 index를 넘어선 경우 검색 ..

자료구조와 알고리즘/자료구조, 알고리즘 2023. 1. 9. 17:36

기본 자료구조 (클래스)

클래스 1, 클래스(class)는 서로 다른 여러 데이터형을 자유로이 조합하여 만들 수 있는 자료구조이다. 2. 클래스형 변수 선언과 인스턴스 생성 만약 ABC라는 클래스가 있고 ABC클래스의 인스턴스를 생성하고 싶으면 다음과 같이 할 수 있다. ABC 변수명 = new ABC() ; (ABC클래스형 변수 선언) (인스턴스 생성) 변수 명은 그냥 변수 이름일 뿐 본체가 아니다. 대신 변수명을 통해 인스턴스 본체에 접근할 수 있다. 3. 클래스 변수와 인스턴스 변수, 지역변수 클래스 내부에서 선언된 변수를 전역변수라 하고 이 안에는 클래스 변수와 인스턴스 변수가 있다. - 클래스 변수 : static 이 앞에 붙어있고 모든 인스턴스들이 공통된 값으로 사용한다. 클래스가 로딩될 때 생성되며 사용시 클래스명...

자료구조와 알고리즘/자료구조, 알고리즘 2023. 1. 6. 05:59

기본 자료구조 (배열+수학알고리즘)

배열 선언 배열 선언은 다음과 같이 가능하다. ex) int[] a ; 예시를 보면 맨 처음 자료형과 []를 적고 배열 변수를 적어주면 된다. 여기서 int[] a = new int[n] ; 과 같이 new 연산자로 본체를 생성하지 않는 이상 a는 그냥 배열 변수일뿐 배열 그 자체가 아니다. 배열을 생성하면서 선언할 수 있는 두가지 방법이 있다. 1. int[] a = new int[n]; > 배열의 크기가 n인 integer형 배열 2. int[] a = { 1, 2, 3 }; > 배열이 integer형이고 1과 2 그리고 3으로 이루어진 크기가 3인 배열 1번은 new 연산자로 배열의 크기만 정해서 생성하는 방법이고, 2번은 배열 생성과 동시에 초기화까지 하는 방법이다. 배열의 요솟수(길이) 배열 변..

자료구조와 알고리즘/자료구조, 알고리즘 2023. 1. 6. 01:06

드모르간 법칙

드모르간 법칙(De Morgan's laws)은 '각 조건을 부정하고 논리곱(&&)을 논리합(||)으로, 논리합을 논리곱으로 바꾸고 다시 전체를 부정하면, 원래의 조건과 같다.'라는 것이다. 예시는 다음과 같다. 1. x && y 1) 각 조건 부정 : x && y > !x && !y 2) 논리연산자 반전 : !x && !y > !x || !y 3) 전체 부정 : !x || !y > !(!x || !y) 따라서 x && y == !(!x || !y) 이다. 2. x || y 1) 각 조건 부정 : x || y > !x || !y 2) 논리연산자 반전 : !x || !y > !x && !y 3) 전체 부정 : !x && !y > !(!x && !y) 따라서 x || y == !(!x && !y) 이다.

자료구조와 알고리즘/자료구조, 알고리즘 2023. 1. 5. 14:28

더 자바, "코드를 테스트 하는 다양한 방법" 1부 JUnit 5 (1~2)

1. JUnit 5 시작하기 우선 강의를 보는데 시작부터 실행방법을 몰라 당황했다. 내가 지금까지 프로젝트를 생성한 방법과 달리 Spring Initializr를 이용해 프로젝트를 만들어야 하는데 인텔리제이 목록에 Spring Initializr가 없어서 실행방법을 찾아야 했다. 여러 시행착오 결과 백기선 님의 강의에서 사용하는 옵션은 다음과 같았다. start.spring.io에서 프로젝트 생성이 가능하다. Project 항목에서 다들 요즘 Gradle을 사용한다 해서 Gradle로 만들어 봤는데 강의에서는 Maven을 사용하길래 Maven을 골랐다. 그리고 밑에 내용은 상황에 맞게 골랐고 Dependencies는 아직 필요 없다 해서 빈칸으로 남기고 다운받았다. 그 후 압축을 풀어 C에 저장한 후 인..

Java 공부/더 자바, 코드를 테스트하는 다양한 방법 2023. 1. 3. 00:09

추가 정보

인기글

최신글

페이징

이전
1 ··· 11 12 13 14 15
다음
TISTORY
꾸준히 개발하자 © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바