전체 글 74

백준 9507(JAVA)

문제 문제에 주어진 꿍 피보나치를 통해서 주어진 입력에대한 답을 구하면된다. 꿍 피보나치는 d[n] = d[n - 1] + d[n - 2] + d[n - 3] + d[n - 4]이다. 풀이 귀여운 꿍문제를 어떻게풀까? 피보나치 문제기 때문에 dp테이블에 메모이제이션해나가며 풀면 시간초과가 나지않겠다. 바텀업으로 반복문으로 풀었당! (재귀함수로 풀어도됩니당!) 타입에 주의해야한다. 코드 package baekjoon.DP; import java.io.*; public class Main9507 { static int T; static long[] d = new long[70]; public static void main(String[] args) throws IOException { BufferedRead..

algorithm 2021.07.23

[객체지향의 사실과 오해] 3. 타입과 추상화

추상화란? 추상화란 어떠한 목적에 맞게 복잡한 현실을 단순화 하는 방법 추상화에는 두가지 차원이 존재한다. 사물들간의 공통점을 취하고 차이점을 버리는 일반화로 단순하게 만드는 것 중요한 부분을 강조하기위해서 사물의 세부사항을 제거하여 단순하게 만드는 것 즉 추상화의 목적은 복잡성을 이해하기 쉬운 수준으로 단순화하는 것! 객체지향과 추상화 이상한나라의 엘리스에서의 트럼프 인간들 트럼프 정원사, 트럼프 병사, 트럼프 왕자, 트럼프 왕, 트럼프 왕자가 이상한나라의 엘리스에 존재한다.(토끼도 존재함) 이를 보고 엘리스는 기껏해야 트럼프에 불과해라고 한다. 트럼프 정원사, 트럼프 병사, 트럼프 왕자, 트럼프 왕, 트럼프 왕자를 트럼프라는 공통점만을 취해 단순화 한것이다. 여러 객체들을 공통점을 기반으로 그룹으로 ..

study with book 2021.07.23

[OS] 운영체제 Process Scheduling 기법

스케쥴링이란 한정된 자원을 할당할 프로세스를 선택하는 것을 말한다. 자원을 할당할 프로세스를 선택하는 기법(알고리즘)에는 여러가지가 존재하는데 하나씩 알아보자!! FCFS(First-Come-First-Service) 먼저 온 녀석부터 자원을 할당하는 기법(알고리즘)이다. 먼저 ready queue에 온 프로세스부터 자원을 할당하고, 할당한 자원은 프로세스가 수행이 끝날때까지, 할당 받는다. 즉, 비선점 스케쥴링 정책을 이용한다. 비선점 스케쥴링 정책 이용 자원에 대해서 효율적으로 사용 가능하다.(왜냐면 비선점 스케쥴링 정책을 이용하기 때문에 스케쥴링 overhead가 낮기 때문이다.) FCFS는 Batch System에 적합하고, 응답성이 중요한 대화형 시스템인 interactive System에 부적..

computer science 2021.07.22

백준 2012(JAVA)

문제 2007년 KOI에 N명의 학생들이 참가하였다. 경시일 전날인 예비소집일에, 모든 학생들은 자신이 N명 중에서 몇 등을 할 것인지 예상 등수를 적어서 제출하도록 하였다. KOI 담당조교로 참가한 김진영 조교는 실수로 모든 학생의 프로그램을 날려 버렸다. 1등부터 N등까지 동석차 없이 등수를 매겨야 하는 김 조교는, 어쩔 수 없이 각 사람이 제출한 예상 등수를 바탕으로 임의로 등수를 매기기로 했다. 자신의 등수를 A등으로 예상하였는데 실제 등수가 B등이 될 경우, 이 사람의 불만도는 A와 B의 차이 (|A - B|)로 수치화할 수 있다. 당신은 N명의 사람들의 불만도의 총 합을 최소로 하면서, 학생들의 등수를 매기려고 한다. 각 사람의 예상 등수가 주어졌을 때, 김 조교를 도와 이러한 불만도의 합을 ..

algorithm 2021.07.22

백준 2212(JAVA)

문제 (너무 긴관계로 핵심만 딱 설명하겠다.) 직선위에 센서가 여러개 있다. 센서의 좌표는 정수로 입력되어진다.(일직선 위에 센서가 있는 것이다.) 센서의 개수는 N개이다. 해당 센서를 수신해야하는 집중국 K개를 세워야한다. 집중국들은 모든 센서를 수신하는 위치에 위치하여야한다. 여기서 문제!! 집중국이 센서로부터 수신 가능 영역의 길이합의 최소를 구하라 문제가 너무 난해하다 예제로 설명하겠다. 센서의 위치를 나타내는 정수 1 6 9 3 6 7 이를 오름차순 정렬하면 1 3 6 6 7 9 이중 집중국 2개를 설치해야하는데 센서 수신가능영역의 합을 최소로하라! (1 3)을 수신하는 센서 1개 -> 영역의 길이 2 (6 9)를 수신하는 센서 1개 -> 영역의 길이 3 합 : 5 풀이 일단 오름차순한다음 적당..

algorithm 2021.07.21

[OS] 운영체제 Process Scheduling

OS가 관리하는 스케쥴링이란 뭔지? 그중 프로세스 스케쥴링이란 뭔지?에 대해서 알아보자 다중프로그래밍(Multi Programming) OS를 구분함에 있어 하나의 시스템에서 여러개의 프로세스가 존재하는 시스템을 다중 프로그래밍이라 했었다. 이렇게 여러개의 프로세스가 하나의 시스템에 존재하면 한정된 자원을 잘~~ 할당해야 컴퓨터 시스템의 성능이 높아질수 있다. 이 자원을 할당할 프로세스를 선택하는 것을 스케쥴링이라 한다. 스케쥴링이란 자원을 할당할 프로세스를 선택하는 것이다. (in 다중프로그래밍) 한정된 자원을 관리하는데 있어 시간을 분할 해서 프로세스에게 할당할지, 아니면 한정된 자원의 공간을 분할해서 프로세스에게 할당할지에 대한 방법이 존재한다. 자원 관리 시간 분할 관리 한정된 자원을 할당하는 시..

computer science 2021.07.21

백준 13904(JAVA)

문제 웅찬이는 과제가 많다. 하루에 한 과제를 끝낼 수 있는데, 과제마다 마감일이 있으므로 모든 과제를 끝내지 못할 수도 있다. 과제마다 끝냈을 때 얻을 수 있는 점수가 있는데, 마감일이 지난 과제는 점수를 받을 수 없다. 웅찬이는 가장 점수를 많이 받을 수 있도록 과제를 수행하고 싶다. 웅찬이를 도와 얻을 수 있는 점수의 최댓값을 구하시오. 풀이 매일 하루에 하나씩밖에 과제를 하지못한다. 1 20 2 50 3 30 4 40 4 60 4 10 이런 입력이있으면 어떻게 해야 최대 점수를 받을수 있을까? 요소되는 날짜는 총 4일인데 해야할과제는 6개다. 즉, 2개를 버려야한다. 뭘 2개버려야할까? 바로 바로!!!! 점수가 제일 적은 과제 두개를 버려야한다 그럼 언제버려야할까? 언제버려야할지는 ArrayLis..

algorithm 2021.07.20

[OS] 운영체제 Thread management

쓰레드에 대해서 알아보자. 프로세스와 쓰레드 프로세스는 자원을 할당받고, 프로세스는 자원을 제어한다. 여기서 자원의 제어를 맡는 부분이 쓰레드이다. (쓰레드는 실이란 의미로 ~로 표시한다.) 하나의 프로세스엔 여러개의 쓰레드가 존재할수 있어서, 여러개의 자원을 동시에 제어할수 있다. 쓰레드의 개념 쓰레드는 공유자원에 대해서 제어할수 있다. 싱글 쓰레드 프로세스내 쓰레드가 한개여서 공유 자원에 대해서 하나의 쓰레드로만 제어하는 것을 싱글 쓰레드라한다. 쓰레드에는 이렇게 자원을 제어할수 있는 제어정보가 존재한다. 멀티 쓰레드 프로세스 내 쓰레드가 여러개있어서 공유자원에 대해서 여러개의 쓰레드가 동시에 제어할수 있다. 이를 멀티 쓰레드라한다. 쓰레드가 프로세스의 메모리공간에 어떻게 존재하는지, 공유데이터를 어..

computer science 2021.07.20

springboot + jpa + mysql

spring boot에서 mysql을 이용해서 spring data jpa를 사용해보자아아 dependencies application.yml spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:(포트번호)/(DB이름)?serverTimezone=Asia/Seoul username: (사용자이름) password: (사용자비밀번호) jpa: hibernate: ddl-auto: create properties: hibernate: format_sql: true logging.level: org.hibernate.SQL: debug mysql의 url이라던가 username, password에 ..

개발 2021.07.19