반응형

전체 글 140

[linux 뽀개기] - pwd - 명령어 구현하기

1. pwd: current working directory를 알려주는 쉘 명령어. 2. getcwd 함수 ```#include char *getcwd(char *buf, size_t size); The getcwd() function copies an absolute pathname of the current working directory to the array pointed to by buf, which is of length size. pwd는 getcwd 함수를 사용해서 구현할 수 있다. 이 함수는 current working directory의 절대 경로를 인자로 받은 buf에 복사한다. (buf는 size 길이 만큼의 버퍼이다.) 반환값이 char *인 이유는, buf , size가 0인 경..

[linux 뽀개기] - perror, strerror - 명령 실행 오류 처리하기

1. perror #include void perror(const char *string); perror() 함수는 오류 메세지를 stderr로 출력한다. string이 NULL이 아니고 널 문자를 가리키지 않는 경우, string에서 지정된 스트링은 표준 오류 스트림으로 출력되고 콜론과 간격이 이어진다. errno의 값과 연관된 메세지가 출력된 다음 줄 바꾸기 문자가 이어진다. 정확한 결과를 도출하려면, 라이브러리 함수가 오류를 리턴한 다음 바로 perror() 함수가 호출되어야 한다. 그렇지 않으면 후속 호출은 errno 값을 변경할 수 있다. 리턴값 리턴값이 없다. 사용예시 #include #include int main(void) { FILE *fh; if ((fh = fopen("mylib/my..

[linux 뽀개기] - tcgetattr - 터미널 정보를 저장하는 함수 , ECHOCTL

[담고 있는 내용] 1. tcgetattr 함수란 2. 함수가 저장하는 terminos 구조체란 3. terminos 구조체 내의 flag 중에서도 c_lflag 4. c_lflag 옵션중에서도 ECHOCTL 1. tcrgetattr 함수 NAME tcgetattr - get the parameters associated with the terminal SYNOPSIS #include int tcgetattr(int fildes, struct termios *termios_p); DESCRIPTION The tcgetattr() function shall get the parameters associated with the terminal referred to by fildes and store them..

백준 2206: 벽 부수고 이동하기 (그래프 순회, 탐색)

문제 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로로 이동하려 한다. 최단경로는 맵에서 가장 적은 개수의 칸을 지나는 경로를 말하는데, 이때 시작하는 칸과 끝나는 칸도 포함해서 센다. 만약에 이동하는 도중에 한 개의 벽을 부수고 이동하는 것이 좀 더 경로가 짧아진다면, 벽을 한 개 까지 부수고 이동하여도 된다. 한 칸에서 이동할 수 있는 칸은 상하좌우로 인접한 칸이다. 맵이 주어졌을 때, 최단 경로를 구해 내는 프로그램을 작성하시오. 입력 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 1,000)이 주어진다. 다음 N개의 줄에 ..

[git 입문 3]- git commit 메세지 작성하기, 수정하기, git log, git ignore

이번 시간에는 https://ebang.tistory.com/31 grocery)라고 적혀잇는데 이건 다다음시간에 알아본다. ebang 이라는 사람은 2022년 마지막 날까지 열심히 커밋을 했구나 , 라는 걸 알 수 있다. 그런데 이 git log 명령어는 commit 메세지를 모두 보여준다. 지금까지는 한 줄 짜리 짧은 메세지였지만, 너무 긴 메세지라면 한줄만 보면서 여러 histoy를 보는 것이 훨씬 간편할 지도 모른다. 그래서 이런 명령어를 사용한다. [git log 메세지 간단하게 출력하기] git log --oneline git log --pretty=online--abbrev-commit --abbrev-commit 옵션은 hash값이 짧게 보이는 것이고, --pretty=online 옵션은..

개발/.git 2023.01.01

[ git 입문 1 ]- 깃이란? (깃 개념, 터미널, 터미널에서 커밋하기)

1. git - version control system이다. (버전관리 시스템) - 당신이 어떤 글을 쓰고 있는데 에세이_최종.docs 에세이_찐_최종.docs 에세이_진짜_찐_최종.docs 라고 고쳐가며 글을 계속 수정해나간다고 치자. 일반 사람들은 보통 이렇게 글을 고쳐 나가면서 가장 마지막으로 수정한 제출본만을 사용한다. 하지만 수정 전의 파일이 저렇게 많아지다보면 어떤 걸 수정했었는지도 기억이 안나고, 관리하기가 매우 복잡해진다. 이런 것들을 해결할 수 있는 것이 '버전 관리 시스템'이다. 이런 것 중 하나로, 가장 많은 사람들이 사용하는 버전 관리 시스템이 git이다. 그리고 그 사용량은 전세계적으로 매우 압도적이기 때문에, git을 사용한다고 보면 된다. 깃을 이용하면 매 순간 저장할 때마다..

개발/.git 2022.12.31

[깃 입문 2]- 깃의 사용( git init, add, commit )

2. git의 사용 약간의 복습을 해보겠다. git은 컴퓨터, 기계에 저장만 되어있다면 인터넷 없이도 사용할 수 있다. 흔히 하는 착각이 git이 클라우드 처럼 사용할 수 있는 '저장소'역할이기 때문에, 마구잡이로 자기가 쓴 코드나 글을 올려두는 용도로 사용하고는 한다. 하지만 git은 그 목적이 '버전 관리 시스템'이다. 무려 git은 Linus Tovalds(LINUX 창시자)가 오픈소스(모두가 볼 수 있는, 사용할 수 있는) 버전 관리 시스템을 만들어보겠다고 시작한 이 서비스이다. 이런 서비스를 저장소로만 이용된다면 조금 아쉽지 않겠는가? 심지어 git은 인터넷 없이도 사용할 수 있다. 오로지 내 컴퓨터 안에서 git이라는 프로그램을 이용해 내 파일들의 변화를 관리할 수 있는 것이다! 본론으로 가보..

개발/.git 2022.12.31

백준 1753번: 최단경로 ( 최단경로, 다익스트라)

문제 방향그래프가 주어지면 주어진 시작점에서 다른 모든 정점으로의 최단 경로를 구하는 프로그램을 작성하시오. 단, 모든 간선의 가중치는 10 이하의 자연수이다. 입력 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1 ≤ V ≤ 20,000, 1 ≤ E ≤ 300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1 ≤ K ≤ V)가 주어진다. 셋째 줄부터 E개의 줄에 걸쳐 각 간선을 나타내는 세 개의 정수 (u, v, w)가 순서대로 주어진다. 이는 u에서 v로 가는 가중치 w인 간선이 존재한다는 뜻이다. u와 v는 서로 다르며 w는 10 이하의 자연수이다. 서로 다른 두 정점 사이에 여러 개의 간선이 존재할 수도 있음에 유의한다. 출력 ..

백준 16928번 :뱀과 사다리 게임 (그래프 순회 및 탐색)

문제 뱀과 사다리 게임을 즐겨 하는 큐브러버는 어느 날 궁금한 점이 생겼다. 주사위를 조작해 내가 원하는 수가 나오게 만들 수 있다면, 최소 몇 번만에 도착점에 도착할 수 있을까? 게임은 정육면체 주사위를 사용하며, 주사위의 각 면에는 1부터 6까지 수가 하나씩 적혀있다. 게임은 크기가 10×10이고, 총 100개의 칸으로 나누어져 있는 보드판에서 진행된다. 보드판에는 1부터 100까지 수가 하나씩 순서대로 적혀져 있다. 플레이어는 주사위를 굴려 나온 수만큼 이동해야 한다. 예를 들어, 플레이어가 i번 칸에 있고, 주사위를 굴려 나온 수가 4라면, i+4번 칸으로 이동해야 한다. 만약 주사위를 굴린 결과가 100번 칸을 넘어간다면 이동할 수 없다. 도착한 칸이 사다리면, 사다리를 타고 위로 올라간다. 뱀..

백준 1912- 연속합(다이나믹 프로그래밍)

문제 n개의 정수로 이루어진 임의의 수열이 주어진다. 우리는 이 중 연속된 몇 개의 수를 선택해서 구할 수 있는 합 중 가장 큰 합을 구하려고 한다. 단, 수는 한 개 이상 선택해야 한다. 예를 들어서 10, -4, 3, 1, 5, 6, -35, 12, 21, -1 이라는 수열이 주어졌다고 하자. 여기서 정답은 12+21인 33이 정답이 된다. 입력 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. 출력 첫째 줄에 답을 출력한다. ------------------------------------------------------------------------------..

728x90
728x90