본문 바로가기

학부 수업 정리

(43)
[모프] 1. Kotlin 개요 1. 데이터 타입 코틀린에서는 문장의 끝에 세미콜론 (;) 을 붙이지 않는다! 코틀린에서는 모든 것이 객체이다. 기본 타입: Byte, Short, Int, Long, Float, Double, Char, Boolean, Array, String Char: 자바와 다르게 숫자형이 아니여서 'a' 대신 65와 같이 사용이 불가능하다. 숫자 값을 저장할 때 underscores (_)를 사용하여 보기 편하게 나타낼 수 있다. ex) $1\_000\_000$ 작은 타입에서 큰 타입으로 대입이 안된다. 명시적 형변환이 필요하다! 산술 연산에서는 묵시적 형변환이 이루어진다. 문자열의 비교 시 "==" 으로 사용 가능하다. 2. 변수 및 상수 변수: var / 상수: val 로 정의해서 사용한다. var a: In..
[알고연] (1주차-3) 118A. String Task 118A. String Task Petya started to attend programming lessons. On the first lesson his task was to write a simple program. The program was supposed to do the following: in the given string, consisting if uppercase and lowercase Latin letters, it: deletes all the vowels,inserts a character "." before each consonant,replaces all uppercase consonants with corresponding lowercase ones. Vowels are le..
[알고연] (1주차-2) 71A. Way Too Long Words 71A. Way Too Long Words Sometimes some words like "localization" or "internationalization" are so long that writing them many times in one text is quite tiresome. Let's consider a word too long, if its length is strictly more than 10 characters. All too long words should be replaced with a special abbreviation. This abbreviation is made like this: we write down the first and the last letter of a..
[알고연] (1주차-1) 4A. Watermelon 4A. Watermelon One hot summer day Pete and his friend Billy decided to buy a watermelon. They chose the biggest and the ripest one, in their opinion. After that the watermelon was weighed, and the scales showed w kilos. They rushed home, dying of thirst, and decided to divide the berry, however they faced a hard problem. Pete and Billy are great fans of even numbers, that's why they want to divi..
[시스템] 15. Timers 1. Interval Timers alarm()은 초단위로만 설정이 되고 주기적 실행도 안되기 때문에 그것보다 유연하게 설정할 수 있는 타이머들을 알아보자. Interval Timer는 실제 시계, 유저공간 시계, 프로세스 시계 3가지 중에서 골라서 타이머를 작동시킬 수 있고, 주기적으로 몇초마다 실행시킬지도 정할 수 있다. 이때 alarm과 setitimer는 real-time timer로 같이 사용하면 위험하므로 하나만 써야한다. $\verb|ITIMER_REAL|$: Real Time 을 측정하고, SIGALRM 시그널을 전송한다. $\verb|ITIMER_VIRTUAL|$: user-space Time 을 측정하고, SIGVTALRM 시그널을 전송한다. $\verb|ITIMER_PROF|$: pr..
[시스템] 14. Sleeping 1. Sleeping Sleeping: 프로세스가 CPU 자원을 갖지 못하게 한다. 즉 해당 프로세스는 실행되지 못하고 가만히 있게 된다. REALTIME, MONOTONIC 시계는 Sleep 하는 동안 계속 시간이 흐르지만, PROCESS_CPUTIME, THREAD_CPUTIME 시계는 Sleep 하는동안 시간이 멈춘다. $\verb|sleep(int seconds)|$ seconds 만큼 재우는 Low Resolution Sleeping 함수 리턴값은 "Number of seconds not slept" 이다. 즉 Sleep에 성공하면 0을 리턴하고, 그렇지 않으면 0과 seconds 사이의 값을 리턴한다. (시그널 받는 경우 수면 방해함) $\verb|nanosleep(struct timespec..
[시스템] 13. Time & Clock 1. Time의 종류 Wall Time (Real Time): 실제 시간. Absolute Time을 측정하기 위해 사용됨. (ex 2021년 12월 8일) Monotonic Time: 상대적인 시간. Relative Time을 측정하기 위해 사용됨. 사용자가 임의로 변경할 수 없다. (ex 컴퓨터가 켜진 뒤로부터 지난 시간, 두 샘플에서 시간차이를 측정) Process Time: 프로세스가 user-space, kernel에서 사용된 시간. 프로세스 profiling 등에 사용됨. 프로세스 시간은 멀티 태스킹 환경에서 wall time보다 천천히 돌아가는 것처럼 보일 수 있다. 2. Hardware Clocks Real Time Clock (RTC): 컴퓨터가 꺼져도 시간이 흘러가는 것을 기록함. Hi..
[시스템] 12. I/O Redirection, Standard I/O Library 1. I/O Redirection 연산자 $\verb|command > filename|$ : Redirecting stdout. (파일에 내용 덮어쓰기됨) $\verb|command >> filename|$ : Appending stdout. (파일에 내용 추가됨) $\verb|command 2> filename|$ : Redirecting stderr. (Error 메시지를 출력함) $\verb|command >& filename|$ : Redirecting stdout, stderr. (> 와 2> 가 합쳐진 형태) 2. Duplicating FD $\verb|int dup(oldfd)|$ oldfd 가 가리키는 것과 같은 새로운 fd를 만든다. 이때 사용되지 않은 File Descriptor 중 ..