목록전체 글 (31)
박나겸
리스트에 주어진 정수를 넣은후, 리스트 탐색을 통해 최대합을 구하면 됨. 전체코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 import java.io.*; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n=Integer.parseInt(br.readLine()); int[] arr=new int[n]; int[] dp=new i..
조건 1. 합을 나타낼땐 수를 1개 이상 사용 2. 첫번째 줄에 테스트 케이스의 갯수가 주어지고, 정수 n이 주어짐 3. n은 11미만의 양수 arr[n]이 방법의 수라고 생각하면 arr[1]=1 n=1일 때 (1) arr[2]=2 n=2일 때 (1,1) (2) arr[3]=4 n=3일 때 (1,1,1) (1,2) (2,1) (3) arr[4]=7 n=4일 때 (1,1,1,1) (1,1,2) (1,2,1) (2,1,1) (1,3) (3,1) (2,2) arr[5]=? n=5일 때. 1+4 / 2+3 / 3+2 로 나눠서 생각할 수 있다. = arr[4]+arr[3]+arr[2]=13 이런식으로 arr의 값을 구할 수 있으니 arr[n]=arr[n-1]+arr[n-2]+arr[n-3]이라는 공식을 도출할 ..
조건 1. 1보다 크고 입력받은 값보다 작거나 같은 한수의 개수를 출력 2. 한수는 각 자리 숫자가 등차수열을 이루는 수 문제에서 입력값는 1000까지 넣을 수 있다고 했으니 1~100 의 경우: 모든 수가 한수의 조건을 만족함 100~의 경우: 입력값을 반복하며 세어주면 됨 100~의 경우 입력받은 값을 a라고 할때 각 자리수는 이와 같이 구하면 됨. 백의 자리=a/100 십의 자리=(a/10)%10 일의 자리=a%10 한수라는 조건에도 맞아야 하니 (백의 자리)-(십의 자리)=(십의 자리)-(일의 자리) 를 만족하는 수를 구하면 된다. 전체 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 public..
CPU 스케줄링 현재 실행 중인 프로세스로부터 다른 프로세스로 CPU를 넘겨주어야 할 때, 기다리고 있는 여러 프로세스 중에 어떤 프로세스를 결정하는 것 스케줄링의 세가지 시점 장기 : 어느 작업을 커널에 등록시켜 프로세스로 만들어 줄 것인가를 결정. 중기 : 보류준비 중인 상태의 프로세스들 중에서 어느 프로세스에 메모리를 할당해 줄 것인가를 결정 단기 : 준비 상태의 프로세스들 중에 어느 프로세스들에세 메모리를 할당해줄 것인가를 결정 스케줄링 평가 기준 사용자 관점 응답 시간 : 프로세스의 요청에 대해 시스템이 최초로 출력을 내주기 시작할 때까지 걸리는 시간 ( 프로세스가 들어와서 끝날때까지 걸리는 시간) 반환 시간 : 요청으로 부터 결과를 돌려 받는 데까지 걸린 시간 예측 가능성 : 요청한 일이 얼마..
1. 스레드란 하나의 프로세스 안에 여러개의 스레드가 존재함 프로세스는 자원이 할당되는 단위 / 스레드는 CPU가 할당되는 단위 -> 할당받은 자원을 공유하며 각자 실행환경 데이터를 가짐 프로세스가 있고 스레드가 있는 것 멀티 스레딩 : 하나의 프로세스를 다수의 스레드로 만들어 실행하는 것. 작업의 수행에 필요한 자원들을 공유하기 때문에 자원의 생성과 관리가 중복되는 것을 줄일 수 있음 스레드는 프로세스 내에서 각각 스택만 따로 할당 받고, code, data, heap의 영역은 공유한다. 2. 멀티 프로세스과 멀티 스레드 멀티 프로세스 하나의 응용 프로그램을 여러개의 프로세스로 구성하여 각 프로세스가 하나의 작업을 처리하도록 하는 것 장점 여러개의 자식 프로세스 중 하나에 문제가 발생하면 하나만 죽음으..
프로세스를 이해할려면 프로그램을 먼저 알아야되는데 프로그램이란 뜻의 정의는 무엇일까? 프로그램이란, 파일이 저장장치에는 저장되어 있지만 메모리에는 올라가 있지 않은 정적인 상태 단순히 말하지면 아직 실행되지 않은 파일 그자체를 가리키는 말이다. 프로그램을 실행하면 그때 그 파일이 컴퓨터 메모리에 올라가게 되고, 이제야 동적인 상태가 된다. 이 상태의 프로그램을 프로세스 라고 한다. 과거에는 프로그램을 실행할때 프로세스 하나만을 사용했지만, 기술이 발전함에 따라 프로그램이 복잡해지면서 한계가 있었다. 그 한계를 극복하기 위해서 여러개의 프로세스를 사용하려면 그만큼의 메모리를 차지하고 CPU에서 할당받는 자원이 중복되기에 스레드가 탄생했다. 프로세스와 스레드의 정의 프로세스 : 운영체제로부터 자원을 할당받은..
운영체제란 - HW와 SW의 사이에 위치해 시스템의 자원과 동작을 관리하는 소프트웨어 운영체제의 목적 - 사용자에게 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공 (사용자 관점) - 하드웨어의 자원들을 공정하게 할당함 (시스템 관점) - HW에서 복잡하게 돌아가는 동작을 사용자(프로그래머)가 모르게 운영체제에서 알아서 관리함 운영체제의 종류 - MSDos, Mac, Windows, IOS, Andriod - MSDos에서는 한번에 하나의 작업만을 수행 가능 - 사용자 프로그램들은 특정 운영체제에 맞춰서 만들기 때문에 ios에서 만든앱을 window에서 동작 시킬수는 없다. 부팅과정 1. 컴퓨터의 전원이 켜지면, CPU는 메모리 0번지 (ROM)에 있는 BIOS 데이터를 읽어옴 2. BIOS는 PO..