전체 글
-
[SWEA - 9850] 의자 제공하기SWexpertAcademy 2020. 4. 28. 03:04
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AXGBRbxaP7sDFAXR&categoryId=AXGBRbxaP7sDFAXR&categoryType=CODE SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 진짜.. 많이 틀린 문제인데.. 일단 아이디어부터 얘기해보도록 하자.. 1. 일단 데이터의 수가 많은 점을 착안하자 2. 의자는 어찌되었든 주어진 숫자에 따라 앉는것이 룰이다. 3. 그렇다면, 제일 좁은 구역에 앉을 놈들을 먼저 앉히는게 좋지않을까? 이제 착안할 점은 앉히는 기준을 생각해내는 것이다. 1~ a, b ~..
-
[SWEA - 9843]촛불 이벤트SWexpertAcademy 2020. 4. 28. 00:28
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AXGBKzuaPOoDFAXR SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 일단, 테스트 케이스의 개수 + 제공되는 변수의 범위를 생각해보면 선형탐색으로는 절대 절대 풀수 없는 문제다. 이럴때 풀라고 있는게 이분 탐색이 아닐까? 어찌돼었든, 문제를 풀때 수학적인 요소가 있긴하지만 그리 강하지는 않다. 이 식을 잘 생각해보자. 입력하는 값 N에 따라, x의 값을 구하는 것이 이 문제의 핵심적인 요소다. 여기까지만 본다면, x를 1부터 쭉 구해서 N과 같아질때 까지 선형 탐색..
-
[BOJ - 1647] 도시 분할 계획 ( 순수 C언어 )백준알고리즘 2020. 4. 27. 22:03
https://www.acmicpc.net/problem/1647 1647번: 도시 분할 계획 첫째 줄에 집의 개수N, 길의 개수M이 주어진다. N은 2이상 100,000이하인 정수이고, M은 1이상 1,000,000이하인 정수이다. 그 다음 줄부터 M줄에 걸쳐 길의 정보가 A B C 세 개의 정수로 주어지는데 A번 집과 B번 집을 연결하는 길의 유지비가 C (1 ≤ C ≤ 1,000)라는 뜻이다. www.acmicpc.net 문제를 제대로 읽고 그림을 그려보면서 이해해야 조금 편할것 같다는 생각을 했다. 지문에는 "마을의 이장은 마을을 두 개의 분리된 마을로 분할할 계획을 가지고 있다. 마을이 너무 커서 혼자서는 관리할 수 없기 때문이다. 마을을 분할할 때는 각 분리된 마을 안에 집들이 서로 연결되도록..
-
[BOJ - 11812] K진 트리백준알고리즘 2020. 4. 26. 09:14
https://www.acmicpc.net/problem/11812 11812번: K진 트리 문제 각 노드가 자식을 최대 K개 가질 수 있는 트리를 K진 트리라고 한다. 총 N개의 노드로 이루어져 있는 K진 트리가 주어진다. 트리는 "적은 에너지" 방법을 이용해서 만든다. "적은 에너지" 방법이란, 이전 깊이를 모두 채운 경우에만, 새로운 깊이를 만드는 것이고, 이 새로운 깊이의 노드는 가장 왼쪽부터 차례대로 추가 한다. 아래 그림은 노드 9개로 이루어져 있는 3진 트리이다. 노드의 개수 N과 K가 주어졌을 때, 두 노드 x와 y 사이의 거리를 www.acmicpc.net 아 .. 열심히 작성된 글이 지워져서 처음부터 다시쓴다. 문제 자체의 숫자 범위가 굉장히 크기때문에 일반적인 DFS를 쓰기에는 무리라..
-
[SWEA - 4112]이상한 피라미드 탐험SWexpertAcademy 2020. 4. 24. 18:03
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWJHmLraeEwDFAUH SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 전형적인 BFS문제다. 하지만, 이 문제를 어렵게 만드는 것이 있다면 아마 맵을 형성하는 부분일것이다. 우선 맵을 그리기 전에 쉽게 그리기 위하여 먼저 나는 규칙성을 찾았다. 첫째로 아래로 내려가면서 제일 왼쪽을 보면 1, 2, 4, 7, 11, 16, 22 ..... 이런식으로 진행되는 수열을 확인할수 있다. 이는 공차가 i로 주어지는 경우고 이를 알았다면 vector를 통해 각 줄에 필요한 만큼..
-
C언어 라이브러리를 활용한 Linux 제어 - 프로세스(exec)Linux 2020. 4. 23. 22:10
앞서 언급했던 fork와 같이 프로세스 자원 관리를 하는데 있어 쓰이는 exec...함수에 대해 포스팅 하고자 한다.fork는 원래 프로세스에서 자식 프로세스를 생성하고 그것을 병렬적으로 사용한다.exec는 자식 프로세스를 본래 코드에서 의도했던 방향과는 아예 다른 프로세스를 형성하기도 하지만오류나 특이점이 생긴 본 코드에서도 프로세스를 관리해주는 역할을 할수도 있다. 위의 그림같은 상황을 생각해보자.fork()를 통해 두가지 프로세스를 생성했다.그리고나서 자식프로세스를 미리 생성해둔 실행프로그램인 fork를 실행하게 두었다.이 경우에는 사실 기본적으로는 잘못된 방법이다.(이유는 후술 할것이다.)어찌 돼었든, 자식 프로세스는 기존의 부모 프로세스와는 전혀 다른 액션을 하는 fork실행 파일의 액션을 취한..
-
C언어 라이브러리를 활용한 Linux 제어 - 프로세스(fork)Linux 2020. 4. 23. 21:49
일반적으로 리눅스에서 코드작성을 통해, 새로운 프로세스를 만들고 사용하기 위해 C언어는 library에서 fork, exec.. 관련 함수들을 내장하고있고 리눅스 운영체제 또한 병렬적인 프로세스 사용이 가능한 운영체제이기 때문에 굉장히 유용하게 하나의 코드에서 여러가지 프로세스를 생성하고 또 사용할수 있다. 그중에서도 먼저 fork를 보자 fork 함수는 자식 프로세스를 생성하는 함수다. 예를들어, 위와 같이 자식 프로세스를 int자료형으로 선언된 변수에 집어 넣을수 있고 성공했을때 0을 반환하며, 실패시 -1, 그외에는 자기자신의 프로세스를 반환하게된다. 이러한 성질 때문에 fork는 지금 코드에서 완전히 다른 프로세스를 실행시킬수 있는 요소를 만들어 주기도하고 한 코드내에서 다른형태의 액션을 취하게끔..
-
[BOJ - 5719] 거의 최단 경로(Python,파이썬)백준알고리즘 2020. 4. 23. 01:28
https://www.acmicpc.net/problem/5719 5719번: 거의 최단 경로 문제 요즘 많은 자동차에서는 GPS 네비게이션 장비가 설치되어 있다. 네비게이션은 사용자가 입력한 출발점과 도착점 사이의 최단 경로를 검색해 준다. 하지만, 교통 상황을 고려하지 않고 최단 경로를 검색하는 경우에는 극심한 교통 정체를 경험할 수 있다. 상근이는 오직 자기 자신만 사용 가능한 네비게이션을 만들고 있다. 이 네비게이션은 절대로 최단 경로를 찾아주지 않는다. 항상 거의 최단 경로를 찾아준다. 거의 최단 경로란 최단 경로에 포함되지 않는 도로로만 www.acmicpc.net 전에 C++로 풀어보았던 문제다. C++로 했을때는 중복을 허락하는 BFS를 두번 써서 해결을 했던것으로 기억한다. 그런데, Py..