반응형

분류 전체보기 135

백준 1181번 - 단어 정렬 , c++ sort함수

문제 알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오. 길이가 짧은 것부터 길이가 같으면 사전 순으로 입력 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. 출력 조건에 따라 정렬하여 단어들을 출력한다. 단, 같은 단어가 여러 번 입력된 경우에는 한 번씩만 출력한다. 1. 문제 해석 c++문법으로 쓰느라 학습하는 느낌이다. 원래 C로 작성했을 때 계속 오류가 났는데 아쉽게도 이유는 모른다. - 문자열 전역변수 char string[20000][51]; 로 설정하면서 - 두 문자열의 위치를 바꿀 때..

백준 2805번: 나무자르기 - 이분탐색

문제 상근이는 나무 M미터가 필요하다. 근처에 나무를 구입할 곳이 모두 망해버렸기 때문에, 정부에 벌목 허가를 요청했다. 정부는 상근이네 집 근처의 나무 한 줄에 대한 벌목 허가를 내주었고, 상근이는 새로 구입한 목재절단기를 이용해서 나무를 구할것이다. 목재절단기는 다음과 같이 동작한다. 먼저, 상근이는 절단기에 높이 H를 지정해야 한다. 높이를 지정하면 톱날이 땅으로부터 H미터 위로 올라간다. 그 다음, 한 줄에 연속해있는 나무를 모두 절단해버린다. 따라서, 높이가 H보다 큰 나무는 H 위의 부분이 잘릴 것이고, 낮은 나무는 잘리지 않을 것이다. 예를 들어, 한 줄에 연속해있는 나무의 높이가 20, 15, 10, 17이라고 하자. 상근이가 높이를 15로 지정했다면, 나무를 자른 뒤의 높이는 15, 15..

데이터의 표현과 컴퓨터 연산2 - 부동소수점의 표현

데이터의 표현과 컴퓨터 연산 3.2. 정수의 표현 컴퓨터의 가장 근본이 되는 기능은 수치의 계산이라고 할 수 있다. 이걸 수행하는 가장 핵심적인 장치가 바로 CPU안에 있는 ALU라고 하는 하드웨어이다. (ALU의 구조) 컴퓨터는 2진수의 체계로 수를 저장하고 표현한다. 모두가 잘 아는 이진수의 체계인데 한번 더 짚고 넘어가자면, 소수점 이하의 이진수는 2^(-1), 2^(-2), ... 를 의미한다. ex) 0.101(2) = 0.5 + 0.125 = 0.625 컴퓨터는 양수 뿐만 아니라 음수도 처리하기 때문에 음수를 표현하는 방법이 필요하다. 이를 수행하는 데에는 여러가지 방법이 있는데, 공통적인 부분은 2진수의 가장 왼쪽 비트가 부호 비트로 사용된다는 점이다. 맨 왼쪽 비트, 즉 최상위 비트는 MS..

[linux 뽀개기] - SHLVL - 환경변수 (env)

[linux 뽀개기] 환경변수란, 터미널에서 실행환경에서 사용 중인 변수이다. export, unset 등과 같은 명령어를 통해서 변경이 가능하며, 오늘은 이중에서 SHLVL에 대해서 알아보고자 한다. 1. SHLVL 터미널 내에 동작 중인 쉘의 깊이, 레벨. 환경변수에 있는 값인데 unset으로 삭제된 경우 예외처리가 까다롭다… 방법: getenv → atoi로 숫자 +1 → itoa → setenv 모든 구간에서 오류처리. 다음은 zsh 명령어를 3번 입력하고 난 후의 결과이다. unset SHLVL 를 입력하면, 환경변수 SHLVL가 사라지는데 env 입력해보면 다시, SHLVL = 1 로 좀 더 하위 위치의 env에 새로 생긴 것이 보인다. 결과 값은 이렇다. 다음 시간에는 환경 변수에 대해 알아..

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

0. cd 명령어란? change directory라는 명령어의 줄임말로, 터미널에서 디렉토리를 오갈 때 사용하는 명령어이다. 1. cd 명령어 형태 총 7가지로 정리했다. cd [ 디렉토리 경로] cd [relative_path] : 상대 경로 cd [absolute_path] : 절대 경로 cd . 현재 디렉토리로 이동 cd .. 한 단계 상위 디렉토리 cd / 최상위 디렉토리로 이동 cd $(변수명) 변수에 저장된 경로로 이동 (파싱 과정에서 $(변수명) 파싱 이후에는 맨 위와 동일하게 처리 되므로 문제 없다) cd cd $(HOME) 사용자 홈 디렉토리로 이동 cd - 이전 경로로 이동 * cd ~ 같은 명령어의 경우, symbolic path라고 해서 절대 경로, 상대 경로 말고 이외의 처리인데..

[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
728x90
728x90