반응형

전체 글 543

has-thumbnail="1" style="background-image:url('https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FznwrE%2FbtrnBNkMkho%2FYHPg80c0V9tm9u2BQRNkBk%2Fimg.png')"

[운영체제론] Process

2장 - process -Process States state diagram에서는 3가지 process states를 보여줌 Running : 현재 CPU를 사용하고 있는 상태 Ready : 언제든지 차례가 되면 CPU를 사용할 수 있는 상태 Blocked : I/O 요구가 있을 때(read or the character typed) 외부 이벤트 발생 전까지 실행을 할 수 없는 상태

기타 2021.12.11

[운영체제론] IPC(Inter-Process Communication)

2장-IPC -Semapore : 1965년 E. W. Dijkstra에 의해 소개된 새로운 변수 타입 사용 : down(P) operation → critical region → up(V) operation 2개의 operation down(P) operation (P for Dutch proberen(test)) semaphore > 0 : 값을 하나 감소하고 계속함 semaphore = 0 : sleep 상태가 됨 up(V) operation (V for verhogen(increment)) sleep 프로세스가 존재 : 깨움 sleep 프로세스가 존재하지 않음 : semaphore 주소값을 증가시킴 각각의 down/up operation은 atomic action이다!!! : 0을 테스트하거나 값..

기타 2021.12.11

[운영체제론] System Call

1장 -Multiprogramming : 여러 개의 프로그램을 동시에 실행하는 것 CPU가 너무 많이 쉬도록 하는 것을 피하기 위한 방법 memory를 각기 다른 job을 가지고 있는 몇 개의 partition으로 나눔 하나의 job이 I/O가 마무리될 때까지 기다리는 동안, 다른 job이 CPU를 사용할 수 있음 -System Calls : 프로그램이 os로부터 다양한 서비스를 제공받고자 할 때 사용할 수 있는 인터페이스 CPU의 2가지 모드 : 1. kernel mode 2. user mode PSW(Program Status Word)의 bit가 mode를 조절함 kernel mode : CPU는 어떤 instruction도 수행 가능 user mode-I/O 와 memory protection이 ..

기타 2021.12.11

[Python] 백준 2751번 : 수 정렬하기2

문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 예제 입력 1 5 5 4 3 2 1 예제 출력 1 1 2 3 4 5 소스코드 n = int(input()) li = [] for i in range(n): li.append(int(input())) li.sort() for i in li: print(i) python3로 제출했더니 시간 초과가 떠서 Pypy3를 이용하여 같은 코드로 제출하..

[Python] 백준 11052번 : 카드 구매하기

문제 요즘 민규네 동네에서는 스타트링크에서 만든 PS카드를 모으는 것이 유행이다. PS카드는 PS(Problem Solving)분야에서 유명한 사람들의 아이디와 얼굴이 적혀있는 카드이다. 각각의 카드에는 등급을 나타내는 색이 칠해져 있고, 다음과 같이 8가지가 있다. 전설카드 레드카드 오렌지카드 퍼플카드 블루카드 청록카드 그린카드 그레이카드 카드는 카드팩의 형태로만 구매할 수 있고, 카드팩의 종류는 카드 1개가 포함된 카드팩, 카드 2개가 포함된 카드팩, ... 카드 N개가 포함된 카드팩과 같이 총 N가지가 존재한다. 민규는 카드의 개수가 적은 팩이더라도 가격이 비싸면 높은 등급의 카드가 많이 들어있을 것이라는 미신을 믿고 있다. 따라서, 민규는 돈을 최대한 많이 지불해서 카드 N개 구매하려고 한다. 카..

[Python] 2011번 : 암호코드

문제 상근이와 선영이가 다른 사람들이 남매간의 대화를 듣는 것을 방지하기 위해서 대화를 서로 암호화 하기로 했다. 그래서 다음과 같은 대화를 했다. 상근: 그냥 간단히 암호화 하자. A를 1이라고 하고, B는 2로, 그리고 Z는 26으로 하는거야. 선영: 그럼 안돼. 만약, "BEAN"을 암호화하면 25114가 나오는데, 이걸 다시 글자로 바꾸는 방법은 여러 가지가 있어. 상근: 그렇네. 25114를 다시 영어로 바꾸면, "BEAAD", "YAAD", "YAN", "YKD", "BEKD", "BEAN" 총 6가지가 나오는데, BEAN이 맞는 단어라는건 쉽게 알수 있잖아? 선영: 예가 적절하지 않았네 ㅠㅠ 만약 내가 500자리 글자를 암호화 했다고 해봐. 그 때는 나올 수 있는 해석이 정말 많은데, 그걸 ..

has-thumbnail="1" style="background-image:url('https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDW1sT%2Fbtrno5erxfR%2FQjK2AtJjXLCK1YiQiadrkk%2Fimg.png')"

[프로그래밍] C++과 JAVA의 차이점

C++과 JAVA는 객체지향이라는 점에서 비슷한 성격을 띄는 언어이지만 극명한 차이점이 존재합니다. 1. 상속 C++은 다중 상속을 지원하고 JAVA는 그렇지 않습니다. '다중 상속'은 하나의 클래스가 두 개 이상의 클래스를 상속하는 것을 말합니다. 다중 상속을 지원하는 언어에서는 일반적으로 '다이아몬드 문제(Diamond Problem)'가 발생합니다. 다이아몬드 문제란 child 클래스의 정확한 상속 관계를 알 수 없어서 발생하는 문제입니다. 즉, 다중 상속시 어느 클래스의 메소드를 상속받아야 하는지 모호한 문제를 말합니다. C++은 friend 키워드를 지원하고 JAVA는 그렇지 않습니다. 특정 class에 friend 키워드를 붙여서 클래스 혹은 함수를 선언하면, 명명된 클래스와 함수는 그 cla..

기타 2021.12.09

[Python] 백준 2225번 : 합분해

문제 0부터 N까지의 정수 K개를 더해서 그 합이 N이 되는 경우의 수를 구하는 프로그램을 작성하시오. 덧셈의 순서가 바뀐 경우는 다른 경우로 센다(1+2와 2+1은 서로 다른 경우). 또한 한 개의 수를 여러 번 쓸 수도 있다. 입력 첫째 줄에 두 정수 N(1 ≤ N ≤ 200), K(1 ≤ K ≤ 200)가 주어진다. 출력 첫째 줄에 답을 1,000,000,000으로 나눈 나머지를 출력한다. 예제 입력 1 20 2 예제 출력 1 21 예제 입력 2 6 4 예제 출력 2 84 소스코드 INF = 1e9 n, k = map(int, input().split()) dp = [[1] * (n+1) for _ in range(k+1)] if k > 1: for i in range(1, n+1): dp[2][i..

has-thumbnail="1" style="background-image:url('https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcgnyHB%2FbtrnfAxZmOH%2F27Y5V0tRtGbqtby1YbGNd1%2Fimg.png')"

[Python] 백준 9461번 : 파도반 수열

문제 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 길이를 k라 했을 때, 그 변에 길이가 k인 정삼각형을 추가한다. 파도반 수열 P(N)은 나선에 있는 정삼각형의 변의 길이이다. P(1)부터 P(10)까지 첫 10개 숫자는 1, 1, 1, 2, 2, 3, 4, 5, 7, 9이다. N이 주어졌을 때, P(N)을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, N이 주어진다. (1 ≤ N ≤ 100) 출력 각 테스트 케이스마다 P(N)을 출력한다. 예제 입력 1 2 6 12 예제 출력 1..

has-thumbnail="1" style="background-image:url('https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwCRB5%2FbtrneuYQLeB%2FQh7JrrlZVCG0qhwKDOzxP1%2Fimg.gif')"

[Python] 백준 2133번 : 타일 채우기

문제 3×N 크기의 벽을 2×1, 1×2 크기의 타일로 채우는 경우의 수를 구해보자. 입력 첫째 줄에 N(1 ≤ N ≤ 30)이 주어진다. 출력 첫째 줄에 경우의 수를 출력한다. 예제 입력 1 2 예제 출력 1 3 힌트 아래 그림은 3×12 벽을 타일로 채운 예시이다. 소스코드 n = int(input()) dp = [0] * (n+1) if n > 1: dp[2] = 3 if n > 3: dp[4] += dp[2] * 3 + 2 for i in range(6, n+1, 2): dp[i] = dp[i-2] * 4 - dp[i-4] print(dp[n]) dp[n] = dp[n-2] * 3 + dp[n-4] * 2 + dp[n-6] * 2 + ...... + dp[2] * 2 + 2 dp[n-2] = dp..

반응형