목록일상 (233)
Life Engineering
https://school.programmers.co.kr/learn/courses/30/lessons/154538 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import java.util.*; class Solution { int[] cost = new int[3000001]; static class Item implements Comparable{ int number; int dist; Item(int number, int dist){ this.number = number; this.dist = dist; } @Override public int ..
OS 정리 세마포어와 뮤텍스 공유된 자원에 여러 프로세스가 동시에 접근하면서 문제가 발생할 수 있다. 이때 공유된 자원의 데이터는 한 번에 하나의 프로세스만 접근할 수 있도록 제한을 둬야 한다. 뮤텍스(Mutual Exclusion) Lock을 가지고 있는 프로세스/스레드만이 lock해제가 가능하다 Locking Algorithm으로 락 가지고 있는 프로세스/스레드가 임계영역 나갈 때만 해제가 가능 Busy Waiting(SpinLock) - lock이 얻어질 때까지 계속 체크하는 것 세마포어 카운터 변수 ⇒ 운영체제 또는 커널에 저장 wait() : 가능한지 체크, 가능하면 카운터변수 -1, signal(): critical section에서 나올때 s를 1 증가 카운터 변수 값 자연수 가능 ⇒ 즉 여..
C언어 컴파일 과정 https://gracefulprograming.tistory.com/16 전처리 과정 헤더 파일 삽입 - #include 만나면 전처리기가 헤더파일 찾아서 내용 삽입 매크로 치환 및 적용 - #define된 부분 심볼 테이블에 저장, 문자열 만나면 #define된 내용으로 치환 컴파일 과정 전반부: 소스코드 오류 분석, 트리 형태로 표현 중단부: SSA 형태로 변환 → 최적화 → 고급 언어, 어셈블리 언어의 중간형태로 변환 후반부: 최적화 → 어셈블리어로 구성된 .s 파일이 만들어짐 어셈블 과정 어셈블러에 의해 어셈블리 코드 → 기계어로 변환 목적코드(helloworld.o) 파일은 명령어(Instruction)와 데이터(Data) 가 들어있는 ELF 구조를 가짐 링킹 과정 오브젝트..
https://www.acmicpc.net/problem/13702 13702번: 이상한 술집 프로그래밍 대회 전날, 은상과 친구들은 이상한 술집에 모였다. 이 술집에서 막걸리를 시키면 주전자의 용량은 똑같았으나 안에 들어 있는 막걸리 용량은 랜덤이다. 즉 한 번 주문에 막걸리 용 www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main_BOJ_13702 { static int max_val=Integer.MAX_VALUE; static int N, K; static int[]..