20.04버전만 이런 건지 모르겠으나 기본적으로 깔려야 될 것 같은 프로그램들이 안 깔려있다. 특히 gcc는 왜 안 깔려있는지 의문 과제를 진행하다가 여러 명령어가 막혀서 정리한다. sudo apt-get update : repository에 새로 추가된 패키지 등, 변경된 패키지 정보를 업데이트 한다. sudo apt-get build-essential : 소스코드 빌드 시 필요한 기본적인 패키지를 설치한다. gcc, g++, make, perl 등의 각종 라이브러리들이 설치된다. apt show build-essential를 이용해 정보들을 볼 수 있다. sudo apt-get install gcc-multilib : 32-bit 헤더와 라이브러리들을 다운로드 받는 명령어이다. CSAPP 과제를 진행..
WSL(Windows Substyem for Linux)를 이용해서 ubuntu를 설치하면 scp 명령이 왠지 모르게 제대로 먹질 않는다. 초보 입장에서 안 되는 이유를 찾기보단 되는 방법을 찾는 것이 더 빠르다. 일단 리눅스를 설치해야 되는데, 가상 머신을 사용했던 기억이 떠올랐다. VMware롤 linux를 실행하고 네트워크를 통해 파일을 전송했던 기억이 있어 바로 VMware를 설치했다. VMware를 설치하고 Linux Server를 설치할 때 Network 설정을 Bridge로 하고 Physical 복사인가 그거까지 체크하고 설치했다. 이렇게 설정하면 파일을 보낼 수 있는 방법이 많았던 걸로 기억하는 것도 있고 이렇게 해야 네트워크 통신이 편했던 걸로 기억한다. 그 뒤에 hostname -I 명..
10473번: 인간 대포 입력은 한 개의 길찾기 문제를 표현한다. 첫 줄에는 두 개의 실수가 입력되며 각각은 당신이 현재 위치한 X, Y좌표이다. 두 번째 줄에는 목적지의 X, Y좌표가 실수로 입력된다. 이어지는 줄에는 대 www.acmicpc.net 시작점에서 도착점까지 얼마나 빨리 갈 수 있는가 묻는 문제이다. 가장 빠른 경로를 응용하는 문제이고 음수 간선이 없으니 다익스트라를 이용할 수 있다는 것을 알 수 있다. 정점의 개수도 기껏해야 100개이므로 나올 수 있는 간선이 기껏해야 100^2개이다. 편리한 계산을 위해 한 정점에서 다른 정점으로 갈 때 걸리는 시간을 미리 구해두자. 가는 방법은 두 가지이다. 걸어가거나 먼저 대포를 탄 뒤 걸어가는 것이다. 시작점과 도착점에서 출발할 땐 반드시 걸어가야..
1106번: 호텔 첫째 줄에 C와 형택이가 홍보할 수 있는 도시의 개수 N이 주어진다. C는 1,000보다 작거나 같은 자연수이고, N은 20보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 각 도시에서 홍보할 때 www.acmicpc.net 풀이 처음 보는 유형의 dp. dp[i]의 정의를 사람을 i명 이상 구할 때 드는 최소비용이라 정의하자. 그러면 어떤 홍보 수단이 3원에 5명을 구할 수 있다고 가정할 때 dp[i]의 최솟값은 dp[i - 5] + 3, dp[i - 4] + 3, ... , dp[i - 1] + 3 중 하나가 된다. 모든 홍보 수단에 대해 최솟값을 찾아 업데이트 하면 답을 구할 수 있다. 코드 #include using namespace std; typedef long lon..
12713번: Ugly Numbers (Small) Once upon a time in a strange situation, people called a number ugly if it was divisible by any of the one-digit primes (2, 3, 5 or 7). Thus, 14 is ugly, but 13 is fine. 39 is ugly, but 121 is not. Note that 0 is ugly. Also note that negative numbers can www.acmicpc.net 구현만 해도 실5 난이도는 아닌 거 같고 숫자 길이 함정도 있어서 초보들 죽이기 딱 좋은 문제. 되는 경우 다 만들고 만들어진 수가 2, 3, 5, 7로 나누어지는지 확인하면 ..
2336번: 굉장한 학생 첫째 줄에 N(1 ≤ N ≤ 500,000)이 주어진다. 다음 세 개의 줄에는 각 시험에서 1등인 학생부터 N등인 학생이 순서대로 주어진다. 학생의 번호는 1부터 N까지 매겨져 있다. www.acmicpc.net 첫 번째 시험을 기준으로 오름차순으로 정렬한다. 그러면 어떤 학생을 기준으로 그 앞에 있는 학생은 모두 첫 번째 시험에서 그 학생보다 좋은 성적을 받은 학생이다. 여기서 두 번째, 세 번째 시험도 더 잘 친 사람이 있는지 체크하면 된다. 두 번째 시험을 나보다 잘 친 사람이 없다면 정답이 하나 증가하고 그렇지 않은 경우 두 번째 시험을 나보다 잘 친 사람들 중에서 나보다 세 번째 시험을 잘 친 사람이 있는지 확인하면 된다. 세그먼트 트리의 리프 노드 i를 두 번째 시험 ..
9345번: 디지털 비디오 디스크(DVDs) 손님이 DVD를 카운터에 가져왔을 때 손님이 원하는 DVD가 전부 존재하면, (A번 선반부터 B번 선반까지에 있는 DVD를 전부 가져왔을 때 순서에 상관없이 A번 DVD부터 B번 DVD까지 있다면) "YES"를 출력하 www.acmicpc.net 라이 갓갓님 덕분에 좋은 문제도 많이 풀고 아이디어도 많이 얻는다. 트리의 리프 노드에 각 DVD의 위치를 저장하고, 업데이트 할 때 그 범위의 DVD 위치들 중 최솟값, 최댓값이 뭔지 파악하면 된다. 0 ~ 4 범위를 검사할 때 최솟값이 0이고 최댓값이 4이면 어떻게든 그 범위 안에 DVD 0, 1, 2, 3, 4가 다 있다는 의미이다. - Source code link github.com/Bibidi/Algorit..
1280번: 나무 심기 첫째 줄에 나무의 개수 N (2 ≤ N ≤ 200,000)이 주어진다. 둘째 줄부터 N개의 줄에 1번 나무의 좌표부터 차례대로 주어진다. 각각의 좌표는 200,000보다 작은 자연수 또는 0이다. www.acmicpc.net 현재 심는 나무 위치 기준으로 왼쪽, 오른쪽 나눠서 생각한다. 왼쪽에 있는 모든 나무와 현재 새로 심을 나무의 거리 차이의 합은 왼쪽에 있는 나무의 개수 * (현재 위치) - 왼쪽 나무의 거리합이고 오른쪽에 있는 모든 나무와 현재 새로 심을 나무의 거리 차이의 합은 오른쪽에 있는 나무의 거리합 - (현재 위치) * 오른쪽에 있는 나무의 개수이다. 주의점은 같은 곳에 나무를 여러 번 심을 수 있다는 점. 오버플로우를 주의해야 한다는 점. % 연산과 * 연산의 순..
- Total
- Today
- Yesterday
- 백준 16562
- 백준 1106
- 백준 9345
- 제로베이스 백엔드 스쿨
- boj 16562
- 부트 캠프
- 백준 12713
- 백준 10775
- boj 12713
- 백준 2336
- boj 1106
- boj 3006
- boj 2243
- boj 2336
- 백준 10473
- boj 10473
- 백준 14868
- 백준 1280
- 백준 2243
- 제로베이스 스쿨
- boj 9345
- boj 1280
- 백준 3006
- 사탕상자
- boj 10775
- 디지털 비디오 디스크
- 터보소트
- Ugly Numbers
- boj 14868
- 인간 대포
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |