목록2024/09 (49)
미소를뿌리는감자의 코딩
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cdFWu3/btsJEE5HhMJ/GA0laK1Rf59kjfGyvvATy1/img.png)
1. .c 파일의 .o 파일 (executable object file)로의 변환 우선 hello.c파일 안에 printf("hello"); 가 들어가 있다고 하자.처음에 cpp 전처리기를 만나, #include 와 같은 라이브러리 코드를 hello.c 파일에 추가해 준다.해당 라이브러리 코드가 추가된 파일은 hello.i 가 된다. 이는 .c파일에서 modified 되었다고 한다.이후 hello.i는 compiler로 들어간다. compiler는 cpp file을 처리해 준다. compiler는 어셈블리어 프로그램을 저장해준다.어셈블리어 프로그램 저장을 통해, 동일한 내용을 다른 언어로 썼어도 assembly 언어로 표현된 후 실행할 수 있게 된다.이후 어셈블리 언어를 처리할 assembler(as)..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/GPV7b/btsJBbJuW0Q/ujZJ8Wiy9qSOGdc5mXKoUK/img.png)
1. 문제https://www.acmicpc.net/problem/13334 2. 접근 방법 처음에 문제를 풀 때, 헤맸던 요인이 무엇일까... 고민해 보았는데 heap에 처음부터 모든 값을 넣고 최솟값을 출력해야한다는 고정 관념에서 기인한 것 같다. heap을 약간의 저장소로 바라보았으면 더 좋지 않았을까 생각한다. 또한 처음에, 좌표 상에서 ( x, y ) ...( x y를 기준으로 시작 점을 잡아 -L을 해서 해당 범위 안에 x가 있다면 ... 이라는 다른 경우도 한번 생각해 보아야 하는데 지쳤다....... 우선 문제 풀이로 넘어가자.좌표 값들 x y로 받아서, min_heap이라는 heap에다가 추가해 주었다.이를 ( y, x )순으로 min_heap에 저장하여 y를 기준으로 오름차순 정렬을 이..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ba5Fm1/btsJyAxwmZU/mtp4ck9ekdDOBWinw2Y8M0/img.jpg)
1. 접근 방법https://www.acmicpc.net/problem/1655 2. 문제 풀이최소 힙과 최대 힙 2개를 이용해서 문제를 풀었다. ( 조금 힌트를 얻긴 했다.. *^^* ) 블록이 홀수 개 일 땐, 최소 힙에 블록을 넣고, 최솟값을 pop 해 최대 힙에 옮긴다. 이후, 최대 힙에서 peek를 출력하여 준다.블록이 짝수 개 일 땐, 최소 힙에 블록을 넣고, 최솟값을 pop해 최대 힙에 옮긴다. 이후 최대 힙에서 최대를 pop하여, 최소 힙에 넣어준다.이후, 최대힙에서 peek를 출력하여 준다. 아래 그림으로 더 자세히 설명해 보겠다. 3. 코드import sysimport heapqmin_heap = []max_heap = []def find_median(i, n): global mi..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/b60lMN/btsJzsynyOW/2EJsJTMJEV4QhrzJ8ECEdK/img.jpg)
1. 문제https://www.acmicpc.net/problem/3190 2. 접근 방법이번 문제는 tail이 따라가야 할 방향과 회전 방향을 어떻게 처리하느냐가 중요한 것 같다.이들을 queue로 구현하여, 구현 가능하도록 하였다. 방향 회전은 아래와 같이 구성하였다. 위와 같이 방향을 처리해 주었다. head가 새로운 곳으로 이동하게 되면, 이를 tail_location 이라는 deque 에 뒤로 넣어주었다.또한 deque.popleft()를 통해서 tail이 따라가야할 위치를 알아내 주었다. 이 외, 다른 부분은 직관적으로 구현하였다. 3. 코드from collections import dequehead_location = [0, 0]tail_location = deque()tail_locatio..