분류 전체보기 (164) 썸네일형 리스트형 LeetCode 21. Merge Two Sorted Lists https://leetcode.com/problems/merge-two-sorted-lists /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; } * } */ import java.util.ArrayList; class Solution { public ListNode mergeTwoLists(ListNode list1, ListNode list2) { ListN.. LeetCode 234 Palindrome Linked List https://leetcode.com/problems/palindrome-linked-list /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; } * } */ class Solution { public boolean isPalindrome(ListNode head) { ListNode node = head; Stack stack = new Stack(); Arr.. 릿코드 1.TWO SUM https://leetcode.com/problems/two-sum/ class Solution { public int[] twoSum(int[] nums, int target) { int[] result = new int[2]; for(int i = 0; i < nums.length; i++) { for(int j = 0; j < nums.length; j++) { if(i != j) { if(nums[i] + nums[j] == target) { System.out.println("nums[i] = " + nums[i]); System.out.println("nums[j] = " + nums[j]); result[0] = i; result[1] = j; return result; } } } } ret.. 스레드 스레드란 프로세스의 코드에 정의된 절차에 따라 cpu에 작업 요청을 하는 실행 단위이다. 스레드 관련 용어 멀티스레드 멀티스레드는 프로세스 내 작업을 여러 개의 스레드로 분할함으로써 작업의 부담을 줄이는 프로세스 운영 기법이다. 멀티태스킹 운영체제가 CPU에 작업을 줄 때 시간을 잘게 나누어 배분하는 기법이다. 이렇게 여러 스레드에 시간을 잘게 나누어 주는 시스템을 시분할 시스템(time sharing system)이라고 한다. 멀티프로세싱 CPU를 여러 개 사용하여 여러 개의 스레드를 동시에 처리하는 작업 환경을 말한다. CPU 멀티스레드 한 번에 하나씩 처리해야 하는 스레드를 파이프라인 기법을 이용하여 동시에 여러 스레드를 처리하도록 만든 병렬 처리 기법이다. 멀티스레드의 장단점 장점 프로세스 내 공.. 컬렉션 프레임워크 ArrayList, LinkedList, Vector ArrayList ArrayList는 List 인터페이스 구현 클래스로, ArrayList에 객체를 추가하면 객체가 인덱스로 관리된다. 배열은 생성할 때 크기가 고정되고 사용 중에 크기를 변경할 수 없지만, ArrayList는 저장 용량을 초과한 객체들이 들어오면 자동적으로 저장 용량이 늘어난다. 구조 기본적인 사용 방법 // ArrayList 생성 방법 List list = new ArrayList(); // ArrayList 객체 추가 list.add("어레이리스트"); // ArrayList 객체 가져오기 String name = list.get(0); 특징 ArrayList의 특정 인덱스에 있는 값을 삭제하면 오른쪽에 있는 값들이 한칸 씩 왼쪽으로 이동해야 한다. 삽입시에는 반대로 오른쪽으로 이동.. 제네릭의 사용 이유와 종류 개요 자바 5부터 제네릭타입이 새로 추가되었다. 제네릭 타입을 이용함으로써 잘못된 타입이 사용될 수 있는 문제를 컴파일 과정에서 제거할 수 있게 되었다. 제네릭은 클래스와 인터페이스, 메소드를 정의할 때 타입을 파라미터로 사용할 수 있다. 제네릭을 사용하는 이유 컴파일 시 강한 타입 체크를 할 수 있다. 자바 컴파일러는 코드에서 잘못 사용된 타입 때문에 발생하는 문제점을 제거하기 위해서 제네릭 코드에 대해 강한 타입 체크를 한다. 런타임 에러보다는 컴파일 에러가 좋다! 런타임 에러는 프로그램 실행 중에 에러가 나는것이다. 운영중인 애플리케이션을 수정해야 하기 때문에 그것보다는 컴파일 에러가 나는 것이 개발중에 에러를 고칠 수 있다는 장점이 있다. List list = new ArrayList(); lis.. 프로세스 제어 블록과 문맥 교환 프로세스 제어 블록 프로세스 제어 블록(Process Control Block)은 프로세스를 실행하는 데 필요한 정보를 보관하는 자료 구조 모든 프로세스는 고유의 프로세스 제어 블록을 가진다. 프로세스 제어 블록은 프로세스 생성 시 만들어져서 프로세스가 실행을 완료하면 폐기된다. 프로세스 제어 블록의 구성 포인터: 프로세스 제어 블록을 연결하여 준비 상태나 대기 상태의 큐를 구현할 때 포인터를 사용한다. 프로세스 상태: 생성, 준비, 실행, 대기, 보류 준비, 보류 대기 등이 있다. 이것은 프로세스의 현재 상태를 나타낸다. 프로그램 구분자(PID): 여러 프로세스를 구별하기 위해 사용한다. 프로그램 카운터: 다음에 실행될 명령어의 위치를 가리키는 값이다. 프로세스 우선순위: 프로세스의 중요도는 각각 다르.. 프로세스의 상태 프로세스에는 기본적으로 다섯 가지 상태가 있다. 이것을 활성 상태(ACTIVE STATUS)라고 한다. 1. 생성 상태(create status) 설명 작업 프로그램을 메모리에 가져와 실행 준비가 완료된 상태이다. 메모리 할당, 프로세스 제어 블록 생성 2. 준비 상태(ready status) 설명 작업 실행을 기다리는 모든 프로세스가 자기 차례를 기다리는 상태이다. 실행될 프로세스를 CPU 스케줄러가 선택한다. DISPATCH(PID): 준비상태의 프로세스를 실행상태의 프로세스로 만들어준다. 3. 실행 상태(running status) 설명 작업 선택된 프로세스가 타임 슬라이스를 얻어 CPU를 사용하는 상태이다. 프로세스 사이의 문맥 교환이 일어난다. TIMEOUT(PID): 실행상태의 프로세스를 준비.. 이전 1 2 3 4 5 6 ··· 21 다음