
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[]..
https://programmers.co.kr/learn/courses/30/lessons/42627?language=java# 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를 programmers.co.kr import java.util.*; class Solution { public int solution(int[][] jobs) { int answer = 0, time=0; PriorityQueue req=new PriorityQueue(new Comparator(){ //요청시간 빠른순으로, 같을 때에는 소요시간 적은 순으로 p..
https://programmers.co.kr/learn/courses/30/lessons/60062 코딩테스트 연습 - 외벽 점검 레스토랑을 운영하고 있는 "스카피"는 레스토랑 내부가 너무 낡아 친구들과 함께 직접 리모델링 하기로 했습니다. 레스토랑이 있는 곳은 스노우타운으로 매우 추운 지역이어서 내부 공사를 하 programmers.co.kr import java.util.*; class Solution { static int answer=Integer.MAX_VALUE; static ArrayList perms=new ArrayList(); public int solution(int n, int[] weak, int[] dist) { int[] w=new int[weak.length+weak.len..
https://programmers.co.kr/learn/courses/30/lessons/17678# 코딩테스트 연습 - [1차] 셔틀버스 10 60 45 ["23:59","23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59"] "18:00" programmers.co.kr import java.util.*; class Solution { public String solution(int n, int t, int m, String[] timetable) { String answer = ""; int ianswer=0; in..
https://programmers.co.kr/learn/courses/30/lessons/92341 코딩테스트 연습 - 주차 요금 계산 [180, 5000, 10, 600] ["05:34 5961 IN", "06:00 0000 IN", "06:34 0000 OUT", "07:59 5961 OUT", "07:59 0148 IN", "18:59 0000 IN", "19:09 0148 OUT", "22:59 5961 IN", "23:00 5961 OUT"] [14600, 34400, 5000] programmers.co.kr import java.util.*; class Solution { Map times=new TreeMap(); public int[] solution(int[] fees, String[..
https://programmers.co.kr/learn/courses/30/lessons/72415 코딩테스트 연습 - 카드 짝 맞추기 [[1,0,0,3],[2,0,0,0],[0,0,0,2],[3,0,1,0]] 1 0 14 [[3,0,0,2],[0,0,1,0],[0,1,0,0],[2,0,0,3]] 0 1 16 programmers.co.kr import java.util.*; class Solution { static int[][] pairs = new int[7][4]; static int answer = Integer.MAX_VALUE; static int limit = 0; static ArrayList numbers = new ArrayList(); static int[] dr = { -1, 1..
https://www.acmicpc.net/problem/13460 13460번: 구슬 탈출 2 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class Ma..
https://www.acmicpc.net/problem/19237 19237번: 어른 상어 첫 줄에는 N, M, k가 주어진다. (2 ≤ N ≤ 20, 2 ≤ M ≤ N2, 1 ≤ k ≤ 1,000) 그 다음 줄부터 N개의 줄에 걸쳐 격자의 모습이 주어진다. 0은 빈칸이고, 0이 아닌 수 x는 x번 상어가 들어있는 칸을 의미 www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.StringTokenizer; public class Main_BOJ_19237 { static class ..
https://www.acmicpc.net/problem/23289 23289번: 온풍기 안녕! 유난히 추운 날씨가 예상되는 이번 겨울을 대비하기 위해 구사과는 온풍기를 설치하려고 한다. 온풍기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기 www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class Ma..