전체 글

마법의 성을 지나 늪을 건너 어둠의 동굴 속 멀리 그대가 보여
생성자 예제 1 class Calculator { int left, right; public Calculator(int left, int right){ this.left = left; this.right = right; } public void sum(){ System.out.println(this.left+this.right); } public void avg(){ System.out.println((this.left+this.right)/2); } } 를 보면 클래스 이름과 같은 메서드를 이용하여 초기화할 수 있다. public Calculator(int left, int right){ this.left = left; this.left = right; } 이 class 이름과 같은 메서드를 생성자(c..
우선순위 큐 우선순위를 가진 항목들을 저장하는 큐 우리가 정한 우선순위대로 정해진 큐 원래라면 1차선 도로처럼 FIFO 순서대로 나아가는 것을 큐(Queue)다. 2차선처럼 우선순위가 높은 데이터가 먼저 나가는 것이 우선순위 큐다. 숫자의 크기를 가지고 일단 우선순위 큐를 만들어보자. 우선순위 큐(heap)은 2가지로 구분 최소 우선순위 큐 (min heap) 최대 우선순위 큐(max heap) 우선순위 큐 구현방법 3가지가 존재한다 1. 배열을 이용한 우선 순위 큐 정렬이 안된 배열 정렬이 된 배열 삽입 - O(1) 가장 뒤에 삽입 삭제 - O(n) 처음부터 끝까지 모든 요소를 check하여 삭제 삽입 - O(n) 모든 요소와 삽입할 요소의 우선순위를 비교하여 삽입위치 결정(이진탐색) 삭제 - O(1)..
오버로딩 오버로딩이란 메서드의 이름이 같지만 매개변수의 (개수, 타입)이 다른 경우를 말합니다. 즉, 같은 메서드 이름을 가지면서 매개변수의 타입 또는 개수가 다른 여러 개의 메서드를 정의할 수 있는 기능을 의미합니다. 이렇게 오버로딩된 메서드들은 컴파일러에 의해 메서드 호출 시 전달되는 인자의 타입 및 개수에 따라 적절한 메서드가 선택되어 실행됩니다. 이때, 로버로딩된 메서드들은 메서드 시그니처가 달라야 합니다. 메서드 시그니처란? 메소드 이름 파라미터 수 파라미터 타입의 순서 다음의 조건을 모두 만족하면 메서드의 signature가 같다고 할 수 있다. Example 아래 두 메서드는 같은 signature라고 할 수 있다. public MyClass { public String myMethod(St..
배열 같은 자료형의 값 여러 개를 저장하는 연속된 공간 배열을 선언하는 4가지 방법 // 배열 선언 첫 번째 방법 String[] coffees = new String[4]; // 두 번째 방법 String coffees[] = new String[4]; // 세 번째 방법(선언과 동시에 초기화) String[] coffees = new String[] {"아메리카노", "카페모카", "라떼", "카푸치노"}; // 네 번째 방법 String[] coffees = {"아메리카노", "카페모카", "라떼", "카푸치노"}; 배열 순회 public static void main(String[] args) { // 배열의 순회 String[] coffees = {"아메리카노", "카페모카", "라떼", "카푸..
· Tip💡
프로그래밍은, 다양한 스타일로 변수명 등을 지정한다. 프로그래밍을 할 때, 변수나 클래스명을 지을 때 공백(" ")을 지우고 그 이름을 짓는다. 예를 들어 변수명은 공백을 애초에 허용하지 않는다. 또한 파일명, 패키지명등은 "\"등이 들어가면 경로에 들어갈 수 있기에 불가능하다. 이에 대해 여러 가지 명명규칙인 (카멜, 파스칼, 케밥, 스네이크) 케이스를 소개한다. 1. 카멜 케이스 카멜케이스라고 이름 지어진 건 낙타의 등이 중간에 불룩 튀어나온 것처럼 글자의 중간중간이 불룩 튀어나와 있기 때문입니다. 원본 문자: Around Hub Studio 케이스 적용 문자: aroundHubStudio 2. 파스칼 케이스 첫번째 문자를 대문자로 변경해 준다는 것이 카멜과 다르다. 자바 클래스의 이름을 정할 때 주..
로봇의 움직임에 따라 어떠한 방향으로 동작할지 시스템순서도를 설계하였다. 순서도는 다음과 같다. 출발 -> 최종목적지태그인식 -> 서버가 로봇의 최종목적지태그를 인식할 때까지 서버랑 로봇 둘 다 무한대기 만약 로봇전부가 태그(최종목적지tag, or 기본 tag 아무거나)를 받는 것을 완료했다면 다음으로 넘어간다. 서버가 로봇의 모든 태그를 받았다면 알고리즘을 계산하여, 서버가 로봇에게 계산한 다음좌표를 로봇에게 전달한다. 로봇은 그에따라 다음목적지로 이동하기 위해 direction알고리즘을 수행하고 다음목적지로 이동을 완료한다. 이동을 완료했다면, 다음목적지가 어떤 의미를 뜻하는지 상태를 결정하기 위해 3가지 중 1가지를 택한다. 1. 단순 다음 목적지 2. 택배 최종 목적지 3. 레디상태로 바뀌기 위한..
code_wizard
코드의 신비: 컴퓨터 마법사의 일기