분류 전체보기 118

멀티 프로세스(Multi process), Context 와 Context Switching

Multi Process 멀티 프로세스는 말 그대로 2개 이상의 프로세스가 동시에 실행되는 것을 의미합니다. 여기서 동시에 라는 말이 중요합니다. 여기서 동시에라는 것은 동시성(Concurrency) 와 병렬성(Parallelism) 을 의미합니다. 동시성(Concurrency) : Single Core에서 여러 프로세스를 빠르게 번갈아 가면서 연산하는 시분할 시스템(Time Sharing System) 으로 실행됩니다. (동시에 실행되는 것 같아 보인다.) 병렬성(Parallelism) : Multi Core에서 실제로 동시에 여러 프로세스를 실행합니다. *시분할 시스템 ? 시분할 시스템은 하나의 CPU에서는 여러 개의 작업을 동시에 수행이 불가하여, 아주 짧은 시간 간격을 두고 여러 개의 프로세스를 ..

CS 2022.04.14

프로세스 메모리 구조

프로세스란? 프로세스란 실행중인 프로그램입니다. 프로그램이 메모리에 적재되어 CPU를 할당받아 실행하는 것 입니다. 프로세스 메모리 구조 프로세스에 할당되는 메모리 공간은 Code, Data, Stack, Heap 4개의 영역으로 이루어져있습니다. 각 프로세스마다 독립적으로 메모리 공간을 할당 받습니다. Code 영역 (Text) 사용자가 실행한 프로그램의 코드가 저장되는 메모리 영역 Data 영역 (Bss, GVAR) 전역변수 또는 static 변수가 저장되는 메모리 영역 Heap 영역 프로그래머가 동적으로 공간을 할당하거나 해제하는 메모리 영역 , runtime에 메모리 영역의 크기가 결정된다. Stack 영역 함수 호출시 생성되는 데이터 (지역변수,매개변수, 리턴값)가 저장되는 임시 메모리 영역

CS 2022.04.13

Object 클래스 - JAVA

java.lang 패키지 중에서도 가장 많이 사용되는 클래스는 바로 Obecjt이다. Obejct 클래스는 모든 클래스의 최고 조상이기 때문에 해당 멤버들은 모든 클래스에서 바로 사용이 가능합니다. 멤버변수는 없고 11개의 메서드만 가지고 있습니다. 해당 포스터에서는 5가지만 정리하도록 하겠습니다. equals(Object obj) 매개변수로 객체의 참조변수를 받아 비교하여 boolean 값으로 return 합니다. 두 객체의 같고 다름을 참조변수의 값으로 판단합니다. 그래서 두 객체가 다르면 항상 false를 반환하게 됩니다. 예제 코드를 들어 설명을 드리겠습니다. import java.io.*; public class Example { public static void main(String[] arg..

[백준 2688] - 줄어들지 않아(JAVA)

[문제] https://www.acmicpc.net/problem/2688 2688번: 줄어들지 않아 첫째 줄에 테스트 케이스의 개수 T(1 이전 자리수의 9 ~ 9 까지의 개수의 합 dp[i][j] = dp[i-1][j] + dp[i-1][j+1] ... + dp[i-1][8] + dp[i-1][9] 라는 식을 구할 수 있습니다. [ i = 자리수(1 ~ 64) , j = 숫자( 0 ~ 9)] 한자리수는 모두 1로 구성되어있어 미리 초기화를 시켜주며, 이 문제는 참고로 테스트 케이스가 있는데 매번 테스트 케이스마다 이 값들을 구할 필요없이 미리 dp테이블을 완성시켜, 테스트케이스안에서는 단순 원하는 자리수의 값만 구하여 출력하게 만들면 된다. 그리고 더하는 값이 너무 커져 오버플로우가 일어날 수 있으니..

백준 문제풀이 2022.04.10

[프로그래머스 Level3] 여행경로 (JAVA)

[문제] https://programmers.co.kr/learn/courses/30/lessons/43164?language=java 코딩테스트 연습 - 여행경로 [["ICN", "SFO"], ["ICN", "ATL"], ["SFO", "ATL"], ["ATL", "ICN"], ["ATL","SFO"]] ["ICN", "ATL", "ICN", "SFO", "ATL", "SFO"] programmers.co.kr [문제 풀기 전] 갈수있는 모든 경로를 탐색하여 알파벳 순서가 앞서는 경로를 반환하면 정답이 되는 문제입니다. 경로가 선택되는 순서에 따라 답이 달라지므로 순열을 사용하여 모든 경우를 만들어 보면 됩니다. 문자열을 다루어야 하는 점에서 어려워 힌트를 봤지만 풀고나니 좋은 문제다 라고 느낀 문제였..

프로그래머스 2022.04.08

제어자(modifier) , 추상클래스 - JAVA

제어자란? 클래스, 변수 또는 메서드 선언부와 함께 사용되어 부가적인 의미를 부여한다. 크게 접근제어자와 그 외의 제어자로 나뉜다. 접근제어자 접근제어자란 외부에서 접근하지 못하도록 제한하는 역할을 한다. 클래스, 멤버변수, 메서드, 생성자에 사용할 수 있다. 이름 기능 public 접근 제한이 없다. protected 같은 패키지 내에서, 다른 패키지의 자손클래스에서 접근 가능 default 같은 패키지 내에서만 접근 가능 private 같은 클래스 내에서만 접근 가능 접근 범위는 public -> proteced -> (default) -> private 으로 오른쪽으로 갈 수록 범위가 좁아진다. 접근 제어자를 사용하는 이유? 정보은닉을 위해서, 즉 캡슐화를 하기 위함이다. 외부에게 불필요한 부분이 ..

기본형 매개변수와 참조형 매개변수 - JAVA

자바에서 많이 사용되는 메서드는 '반환타입 메서드이름 ( 매개변수 선언 ) { }' 구조로 이루어져 있습니다. 메서드를 호출할 때 매개변수로 지정한 값을 메서드의 매개변수에 복사해서 넘겨주는데 매개변수의 타입에 따라서 다릅니다. 기본형(primitive type) 매개변수 : 기본형 값이 복사, 변수의 값을 읽기만 할 수 있다. (read only) 참조형(reference type) 매개면수 : 변수의 값을 읽고 변경할 수 있다.(read & write) 무슨 차이가 있는지 예제를 통하여 보여드리겠습니다. 1. 기본형 매개변수 class Data{ int x; } public class Example { public static void main(String[] args) { Data data = ne..

[프로그래머스 Level2] 메뉴 리뉴얼(JAVA) - 2021 카카오

[문제] https://programmers.co.kr/learn/courses/30/lessons/72411?language=java 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 해당 문제의 내용이 길어 생략했습니다. [문제 풀기 전] 카카오 문제는 항상 문제를 잘 읽는것은 기본이고, 2레벨 정도 난이도는 어설프게 자료구조를 알고있으면 풀 수 없는 것 같다. 문제가 길 뿐이지 생각보다 구현한 코드를 보면 그렇게 길지도 않고 엄청 어렵다 느낌은 들지 않는다. HashMap 에 대하여 좀 더 정확한 개념과 메..

카테고리 없음 2022.03.31

기본형(Primtive Type) - JAVA

https://dding9code.tistory.com/45?category=1258691 변수 포스팅을 했었는데 그중 기본형에 대하여 내용이 부실하여 추가로 글을 쓰게 되었습니다. 기본형이란? 실제 값(data)을 저장하는 데이터 타입으로 논리형, 문자형, 정수형, 실수형 으로 나누어 집니다. 논리형 (boolean) - 논리형은 boolean 하나만 존재하며, boolean 변수는 true, false 밖에 저장을 할 수 없다. 기본(default)는 false 이다. 주로 대답(yes/no), 스위치(on/off), 플래그 등의 논리구현에 주로 사용된다. true, false 만을 사용하기에 1bit 로 충분하지만 자바에서 데이터를 다루는 최소 단위는 byte이다. 그래서 boolean의 크기는 1..