반응형

전체 글 147

Linux(리눅스) vi 편집기 간단 설명 [컴공과고씨]

앞서 글에서 말했듯이 리눅스에서는 vi 편집기를 사용합니다. 기본적으로 vi 편집기는 커맨드 기반이기 때문에 사용을 할 때 모든 것은 명령어로 이루어집니다. 윈도우에서 visual studio를 사용할 때 마우스로 했던 작업들을 모두 키보드로 한다고 생각하시면 됩니다. vi 편집기는 command Mode, Insert Mode, Command-line Mode로 나누어 집니다. vi편집기 실행 명령어 $ vi main.c 하면 main.c라는 파일을 vi 편집기로 열게 됩니다. 처음에 딱 들어가면 Command Mode로 시작이 됩니다. 여기서 i, a, o, I, A, O 중 하나를 입력하면 insert mode로 가서 입력을 할 수 있게 됩니다. insert mode에서 command mode로 돌..

CS/리눅스(Linux) 2022.09.20

Linux(리눅스) 컴파일의 전체적 과정 (윈도우와 차이점) [컴공과고씨]

Editor(편집기) : 윈도우에서는 visual studio와 같은 편집기를 사용한다면, 리눅스에서는 vi라는 편집기를 사용합니다. 1. 그래서 편집기 vi에서 소스파일들을 작성을 하겠죠. 2. 여기서 만든 소스파일들을 컴파일러(gcc, g++)을 통해 object 파일로 만들어줍니다. *gcc->c, g++->c++ 파일 확장자는 *.c ->*.o 로 됩니다. 이때 한 개의 소스파일 당 하나의 object 파일을 만들게 됩니다. *여러개의 소스파일 중 어떤 소스파일들을 object파일로 할지를 결정하는 것이 윈도우 visual studio에서는 프로젝트라고 볼 수 있습니다. 리눅스에서는 그 역할을 하는 것이 make 입니다. make file은 object파일로 만들 소스파일들을 지정해주고 make라..

CS/리눅스(Linux) 2022.09.20

백준 1149 RGB거리 c++ [컴공과고씨]

https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 문제 정리 집을 3가지 색으로 칠할 수 있음. 각 집마다 각 색으로 칠하는 비용이 다름. 각 집의 색깔은 바로 앞 집과 바로 다음 집의 색깔과 같으면 안됨. 비용을 최소로 칠하는 비용은? 문제 해결 방법 이 문제의 경우 다이나믹 프로그래밍을 이용하면 쉽게 풀 수 있다. 일단 dp[3][n]이라는 배열을 만든다. 이 배열의 의미를 먼저 알아보자. 앞에 3이라는 것은 3가지 색깔..

알고리즘/백준 2022.09.20

백준 11660 구간 합 구하기 5 c++ [컴공과고씨]

https://www.acmicpc.net/problem/11660 11660번: 구간 합 구하기 5 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다. 다음 M개의 줄에는 네 www.acmicpc.net 문제 정리 1. 행렬이 주어짐. 2. 시작 좌표 (x1,y1)이 주어지고 도착 좌표 (x2,y2)가 주어짐 3. 좌표 사이에 있는 값의 합들을 구해야함. 예를 들어 초록색이 시작 좌표, 파란색이 끝 좌표라고 하면 저런식으로 보라색 빗금의 부분의 합들을 구해주면됨. 문제 해결 방법 그 전 구간 합 구하기를 해보면 알듯이 일일이 for문을 돌리면서 구해주면 ..

알고리즘/백준 2022.09.18

유니온 파인드(Union Find) C++ [컴공과고씨]

알고리즘 문제들을 풀다보면 각 원소들이 속해 있는 집합을 구별해야하는 문제를 볼 수 있다. 유니온 파인드에 대한 자세한 설명은 생략하고 간단히 설명하고 구현 함수들을 보여드리겠습니다. 기본 개념 속해있는 집합이라고 생각하시면 됩니다. 1,2,3,4,5 라는 원소가 있다고 하면 처음에는 자신의 숫자가 속해있는 그룹 번호라고 합시다. 그룹 번호-원소로 나타내면 1-1 2-2 3-3 4-4 5-5. 여기서 1번 원소와 2번 원소를 합친다는 것은 1번 원소가 속한 그룹과 2번 원소가 속한 그룹을 합치는 것입니다. 나타내면 1-1,2 3-3, 4-4, 5-5 가 되겠죠. 여기서 2번원소와 4번 원소를 합치면? -> 1-1,2,4 3-3 4-4 5-5 가 됩니다. 이렇게 해서 같은 그룹을 만들어 나가는 것을 유니온..

백준 1389 케빈 베이컨의 6단계 법칙 c++ [컴공과고씨]

https://www.acmicpc.net/problem/1389 1389번: 케빈 베이컨의 6단계 법칙 첫째 줄에 유저의 수 N (2 ≤ N ≤ 100)과 친구 관계의 수 M (1 ≤ M ≤ 5,000)이 주어진다. 둘째 줄부터 M개의 줄에는 친구 관계가 주어진다. 친구 관계는 A와 B로 이루어져 있으며, A와 B가 친구라는 뜻 www.acmicpc.net 문제 정리 1. 유저가 번호로 주어짐 2. 관계가 주어짐. 관계라는 것은 예를 들어 1 2 이렇게 주어지면 1과 2는 연결되어 있다는 것을 말함. 3. 관계가 1 2 주어지고 2 4 로 주어진다고 치면 1에서 4로 갈때의 단계는 1 2(1단계) 2 4(2단계) 그래서 총 2단계를 걸처 1에서 4가 연결되어 있다고 함. 이 때 다른 사람과의 관계의 총..

알고리즘/백준 2022.09.10

백준 11286 절댓값 힙 c++ [컴공과고씨]

https://www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 문제 정리 0이 아니면 원소 추가. 0이면 추가된 원소 중 절대값이 가장 작은 원소를 출력 후 제거. 원소의 개수가 0일 경우 0이 입력되면 0을 출력. 문제 해결 방법 우선순위 큐를 떠올리면 간단하게 풀 수 있는 문제이다. 우선 순위 큐를 간단하게 보려면 https://hagisilecoding.tistory.com/60?category=1050177 위 링크에서 간단하게 ..

알고리즘/백준 2022.09.05

백준 11659 구간 합 구하기 4 c++ [컴공과고씨]

https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net 문제 정리 n개의 숫자가 주어짐 구간이 주어지면 그 구간안에 있는 숫자의 합을 구하라. 문제 해결 방법 무작정 구간이 주어질때마다 더하게 되면 시간 초과가 남. 숫자가 주어질때마다 거기까지의 합을 구해놈. 그 후 구간이 주어지면 마지막 구간까지의 합에서 시작 구간 전까지의 합을 빼주면 됨. 전체코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ..

알고리즘/백준 2022.09.04

백준 16236 아기 상어 c++ [컴공과고씨]

https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net 문제 간단 정리. 상어가 물고기를 먹으러 다님. 상어는 물고기의 크기보다 크면 물고기를 먹을 수 있음. 크기가 같다면 지나갈 수만 있음. -> 작으면 못지나 감. 물고기를 먹으면 그 칸은 빈칸이 됨. 상어가 한 크기에서 물고기를 먹은 횟수와 상어의 크기가 같게 되면 상어 크기가 1 증가함. 물고기를 먹을 때는 가장 작은 것을 우선으로 먹고 같은 크기가 많다면 가장 위쪽 우선 그 다음은 왼쪽..

알고리즘/백준 2022.09.03

백준 17219 비밀번호 찾기 c++ [컴공과고씨]

https://www.acmicpc.net/problem/17219 17219번: 비밀번호 찾기 첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ N ≤ 100,000)과 비밀번호를 찾으려는 사이트 주소의 수 M(1 ≤ M ≤ 100,000)이 주어진다. 두번째 줄부터 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번 www.acmicpc.net 이 문제는 굉장히 간단합니다. map 컨테이너를 사용하면 간단히 풀 수 있습니다. 이러한 문제류는 pair같은 것으로 저장 후 탐색을 for문으로 돌리게 되면 시간초과가 나기 때문에 map 컨테이너를 이용해 key값을 찾아주는 것이 시간 복잡도 측면에서 유리합니다. 전체 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ..

알고리즘/백준 2022.09.03
반응형