반응형

전체 글 93

Queue 구현해보기

Queue 배열을 사용해서 한번 ListNode를 사용해서 한번 queue는 기본적인 자료구조의 한가지로 먼저 넣은 데이터가 먼저 나오는 선입선출 FIFO(First In First Out) 구조로 저장하는 구조이다. 영어에서 queue는 무언가를 사러 일렬로 서 있는 줄을 말한다. 후입선출에 스택과는 반대되는 개념이다. 구현 public class ArrayQueue { private final int MAX_SIZE = 10; private int[] data; private int head; private int tail; public ArrayQueue() { this.data = new int[MAX_SIZE]; this.head = 0; this.tail = 0; } /** * head의 위치..

TIL 2021.01.03

stack 구현해보기

Stack int 배열을 사용해서 정수를 저장하는 Stack을 구현하세요. void push(int data)를 구현하세요. int pop()을 구현하세요. ListNode head를 가지고 있는 ListNodeStack 클래스를 구현하세요. void push(int data)를 구현하세요. int pop()을 구현하세요. stack은 제한적으로 접근할 수 있는 나열 구조이다. 접근 방법은 언제나 목록의 끝에서만 일어나 끝먼내기 목록(Pushdown list)이라고도 한다. 한 쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형 구조로 후입선출(LIFO - Last In First Out)의 구조를 이루고 있다. push 자료를 밀어 넣는것 pop 자료를 꺼내는것, 가장 최근에 push한 자료부터 나오게 된다...

TIL 2021.01.02

LinkedList 구현해보기

LinkedList LinkedList에 대해 공부하세요. 정수를 저장하는 ListNode 클래스를 구현하세요. ListNode add(ListNode head, ListNode nodeToAdd, int position)를 구현하세요. ListNode remove(ListNode head, int positionToRemove)를 구현하세요. boolean contains(ListNode head, ListNode nodeTocheck)를 구현하세요. LinkedList란 배열과 비슷하게 데이터들의 묶음을 표현할 때 사용할 수 있다. 배열은 연속적인 공간에 데이터를 저장하고 이들의 위치를 통해 (포인터) 데이터에 접근하는 반면, LinkedList는 노드 안에 데이터와 다음 노드를 가리키는 주소 값을 ..

TIL 2021.01.02

JUnit이란?

JUnit JUnit이란 java의 단위 테스트(Unit Test) 도구이다. 테스트 결과를 문서로 남기는 것이 아니라 Test Class 자체를 남겨 리팩토링을 하거나 소스코드가 변해도 해당 코드가 제대로 동작하는지 테스트 코드를 가지고 그대로 테스트 할 수도 있고, 미래에 이 기능을 맡게될 개발자에게 테스트 방법 및 클래스의 histroy를 넘겨줄 수도 있다. 하나의 jar파일로 되어있다. 단위 테스트 소스코드의 특정 모듈이 의도된 대로 작동하는지 검증하는 절차 모든 메서드에 대한 테스트 케이스를 작성하는 절차 JUnit4부터는 @어노테이션을 지원하여 간단하게 테스트할 수 있는 환경을 제공한다. (@Test, @Before ...) 테스트의 결과는 성공은 초록색, 실패는 빨간색으로 표시된다. 테스트 ..

Programming/JAVA 2020.12.31

제어문이란?

제어문 코드가 위에서 아래로 순차적으로 실행되는 구문을 순차문이라고 한다. 모든 코드가 순차적으로 실행된다면 좋겠지만 실제로는 그렇지 않다. 제어문은 코드의 실행 흐름을 담당하는 (flow control) 구문으로 제어문은 선택문, 반복문, 분기문으로 나뉜다. 선택문 선택문 혹은 조건문이라고도 한다. 조건식같은 분기로 나누어 결과에 따라 다른 코드를 실행할 수 있게 해주는 구문이다. if 문 if문 안에 있는 조건식이 참일 경우 {}안에 있는 코드가 실행된다. 조건식엔 참, 거짓의 boolean타입만 들어갈 수 있다. if (조건식) { System.out.println("true") // {} 안에 코드가 1줄일 경우 {} 생략 가능 } if else 문 if문 안에 있는 조건식이 참일 경우엔 if문{..

Programming/JAVA 2020.12.29

연산자란?

연산자란? 주어진 식의 결과 값을 산출하는 것을 연산이라고 하는데, 연산을 위해 사용하는 기호를 연산자라고 한다. 산술 연산자 (Arithmetic Operator) 사칙연산과 나머지를 구하는 연산까지 5가지가 있다. (더하기, 빼기, 곱하기, 나누기(몫), 나누기(나머지)) boolean타입을 제외한 모든 Primitive type에서 사용이 가능하다. 컴퓨터 시스템적으로 곱하기와 나누기의 연산방식은 비트를 Shift하여 계산한다. 피연산자들 중 부동 소수점이 있다면 부동 소수점으로 산술된다. 더하기 더하기는 + 연산자를 사용하고, 기본적으로는 두 수의 합을 산출할 때 사용하지만 문자열을 연결 시킬때도 사용할 수 있다. 피연산자 중 문자열이 포함되어 있다면 다른 피연산자도 문자열로 취급되어 결과값도 문..

Programming/JAVA 2020.12.22

데이터 타입, 변수, 배열 그리고 타입추론

데이터 타입 JAVA의 데이터 타입은 Primitve Type과 Reference Type으로 나뉜다. 기본형 타입 (Primitive Type) 미리 정의되어 제공되는 데이터 타입으로 원시 타입이라고도 함. 기본값이 있기 때문에 Null을 허용하지 않는다. 기본형 타입에 Null을 넣고 싶다면 래퍼 클래스를 사용해야한다. 스택(Stack) 메모리에 실제값을 저장한다. 값을 저장할 수 있는 범위가 있어 크기를 벗어나면 컴파일 에러가 난다. 타입 할당되는 메모리 크기 기본값 데이터 표현 범위 논리형 boolean 1 byte false true, false 정수형 byte 1 byte 0 -128 ~ 127 short 2 byte 0 -32, 768 ~ 32,767 int 4 byte 0 -2, 147, ..

Programming/JAVA 2020.12.21

JVM이란?

JVM 이란? Java Virtual Machine의 약자로 자바 가상 머신을 의미 한다. Java Byte Code를 OS에 맞게 해석을 해주기 때문에 JAVA의 애플리케이션이 OS에 영향을 받지 않고 실행할 수 있게해주는 역할을 한다. Java Compiler가 .java파일을 .class파일인 Java Byte Code로 변환을 해준다. 하지만 Java Byte Code는 OS에서 바로 실행 할 수가 없다. 이 Byte Code를 OS에 맞게 실행할 수 있게 해석해주는 것이 JVM이다. 자바 바이트 코드 (Java Byte Code) JVM이 이해할 수 있는 언어로 변환된 자바 소스 코드를 의미한다. (.class파일) 자바 컴파일러에 의해 변환되는 코드의 명령어 크기가 1바이트여서 자바 바이트 코..

Programming/JAVA 2020.12.21

Windows Terminal에서 ubuntu 사용하기

Windows 10이 되면서 WSL이라고 하여 Windows안에서 linux를 사용할 수 있는 시스템을 지원하기 시작했다. Microsoft Store에서 ubuntu를 다운 받는다. Windows Terminal에서 Ctrl+,를 눌러 설정창을 띄운뒤 list항목에 ubuntu를 추가하면 된다. 추가하려면 guid를 알아야하는데 ubuntu창에서 uuidgen를 입력하면 된다. $ uuidgen Terminal 설정창에 미리 적혀있는 것들을 참고하여 list에 추가한다. zsh쉘와 oh-my-zsh를 설치하여 ubuntu Terminal를 꾸며줄 수 있다. zsh설치 $ sudo apt-get install zsh $ chsh -s /usr/bin/zsh # 기본 쉘로 변경oh-my-zsh $ wget..

TIL 2020.12.10

[JAVA] Arrays.asList()

Arrays.asList Arrays.asList의 패키지는 java.util.Arrays로 보통의 사용하던 java.util.ArrayList의 ArrayList와는 다르다. java.util.Arrays의 ArrayList 클래스는 remove(), add() 메소드를 제공하지 않고 set(), get(), contains()를 제공한다. 배열에 엘리먼트를 추가하거나 삭제할 수 없어서 배열의 사이즈를 변경할 수 없다. Array를 List 처럼 사용할 수 있게 도와주는 클래스 String[] strs = {"apple", "banana", "orange"}; // List list = new ArrayList(); 대신 사용이 가능하다. List list = Arrays.asList(strs); st..

Programming/JAVA 2020.09.17
반응형