목록전체 글 (53)
동그란 도그린
입력 첫 줄에 버퍼의 크기를 나타내는 자연수 N 입력 둘째 줄부터 한 줄에 하나씩 라우터가 처리해야 할 정보 입력 양수: 해당하는 번호의 패킷이 입력으로 들어왔다는 것을 의미 0 : 라우터가 패킷 하나를 처리했다는 것을 의미 (버퍼가 비어있을때는 0이 입력으로 들어오지 않음) -1 : 입력의 끝을 의미 출력 라우터에 남아있는 패킷을 순서대로 출력 비어있는 경우 “empty”를 출력 풀이 방법 큐 이용하여 구현 입력 받은 수가 양수이고, 버퍼가 가득 차지 않은 경우 ⇒ 큐에 입력 받은 패킷 번호 저장 0을 입력 받은 경우 ⇒ 큐에 저장된 맨 앞의 패킷 꺼내기 if문을 통해 큐(버퍼)가 비어있는 경우와 비어있지 않은 경우로 나누어 출력 코드 import java.io.*; import java.util.*;..
📍 Deque이란? Double-Ended Queue의 줄임말로, 그림과 같이 큐의 양쪽에서 데이터의 삽입 및 삭제가 가능한 형태의 자료구조 Deque deque1 = new ArrayDeque(); Deque deque2 = new LinkedBlockingDeque(); Deque deque3 = new ConcurrentLinkedDeque(); Deque deque4 = new LinkedList(); 한쪽으로만 입력 가능하도록 설정한 덱을 스크롤(scroll), 한쪽으로만 출력 가능하도록 설정한 덱을 셸프(shelf)라고 함
📍 표현식이란? 어떤 값으로 평가되는 구절 📍 기본 표현식 가장 단순한 표현식 상수, 리터럴 값, 일부 키워드, 변수 참조 등이 있음 true // 불 true로 평가 false // 불 false로 평가 null // null로 평가 this // '현재' 객체로 평가 (일정한 값이 아니며, 사용한 위치에 따라 다른 값으로 평가) 📍 객체와 배열 초기화 배열식 값이 새로 생성된 객체나 배열인 표현식 (객체 리터럴 / 배열 리터럴) 배열 초기화 표현식 대괄호 안에 콤마로 구분된 리스트를 쓰는 형태 배열 초기화 표현식 내부의 요소 표현식도 배열 초기화 표현식이 될 수 있음, 이 표현식은 배열 초기화 표현식을 평가할 때마다 평가되므로 결과가 달라질 수 있음 배열 리터럴에서 콤마 사이의 값을 생략하면 정의되지..
📍 값 식(표현식)이 평가되어 생성된 결과 1 + 2; // 1 + 2는 평가되어 숫자 값 3을 생성 🔅 평가 : 식을 해석해서 값을 생성하거나 참조하는 것 📍 리터럴 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법 (ex: 정수, 문자열, 불리언 등) 자바스크립트 엔진은 코드가 실행되는 시점인 런타임에 리터럴을 평가해 값을 생성함 📍 표현식 값으로 평가될 수 있는 문은 모두 표현식 // 리터럴 표현식 1 'Hello' // 식별자 표현식 (이미 선언했다고 가정) sum person.name // 연산자 표현식 1 + 2 // 함수/메서드 호출 표현식 (이미 선언했다고 가정) square() 📍 문 프로그램을 구성하는 기본 단위이자 최소 실행 단위 문을 명령문이라고도 부름 문..
StringBuilder 클래스의 setLength() 메소드에 0을 전달하여 빈 값으로 초기화 가능 StringBuilder sb = new StringBuilder(); sb.setLength(0);// 빈 값으로 초기화
📍 변수란? 컴퓨터는 CPU를 사용해 연산하고, 메모리를 사용해 데이터를 기억함 메모리 : 데이터를 저장할 수 있는 메모리 셀의 집합체, 셀 하나의 크기는 1바이트(8비트), 각 셀은 고유의 메모리 주소를 가짐 자바스크립트는 개발자의 직접적인 메모리 제어를 허용하지 않음 (메모리 주소를 통해 값에 직접 접근 불가) 변수 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 / 메모리 공간을 식별하기 위해 붙인 이름 프로그래밍 언어의 컴파일러 또는 인터프리터에 의해 값이 저장된 메모리 공간의 주소로 치환되어 실행됨 변수를 통해 값에 안전하게 접근 가능 할당 : 변수에 값을 저장하는 것, 참조 : 변수에 저장된 값을 읽는 것 식별자 변수의 이름 값이 아니라 어떤 값이 저장되어 있는 메모리 주소를 기억함 값이 ..
📍 컴파일러/인터프리터란? 컴퓨터가 이해할 수 있는 기계어로 변환하는 일종의 번역기 📍자바스크립트란? 웹페이지의 보조적인 기능을 수행하기 위해 브라우저에서 동작하는 경량 프로그래밍 언어 현재 모든 브라우저의 표준 프로그래밍 언어 📍 자바스크립트 역사 초창기 자바스크립트 대부분의 로직은 주로 웹 서버에서 실행됨 브라우저는 서버로부터 전달받은 HTML과 CSS를 단순히 렌더링하는 수준 🔅 렌더링 : HMTL, CSS, Javascript로 작성된 문서를 해석해서 브라우저에 시각적으로 출력하는 것, 서버에서 데이터를 HTML로 변환해서 브라우저에게 전달하는 과정을 의미 🔅 Ajax (XMLHttpRequest) : 자바스크립트를 이용해 서버와 브라우저가 비동기 방식으로 데이터를 교환할 수 있는 통신 기능 Aj..
🔅 Comparable과 Comparator 사용 이유 public class Test { public static void main(String[] args) { Student a = new Student(20, 23);// 20세, 23학번 Student b = new Student(22, 21);// 22세, 21학번 // 두 객체 비교하기 } } class Student { int age; // 나이 int id; // 학번 Student(int age, int id) { this.age = age; this.id = id; } } 위와 같은 상황에서 두 객체를 어떤 기준으로 비교할지 판단할 수 없으므로 이러한 문제를 해결하기 위해 Comparable과 Comparator를 사용함 🔅 Compar..