C 55

[C언어] 백준 2011 : 암호코드

백준 2011 : 암호코드 문제 링크 https://www.acmicpc.net/problem/2011 2011번: 암호코드 나올 수 있는 해석의 가짓수를 구하시오. 정답이 매우 클 수 있으므로, 1000000으로 나눈 나머지를 출력한다. 암호가 잘못되어 암호를 해석할 수 없는 경우에는 0을 출력한다. www.acmicpc.net 문제 내용 상근이와 선영이가 다른 사람들이 남매간의 대화를 듣는 것을 방지하기 위해서 대화를 서로 암호화하기로 했다. 그래서 다음과 같은 대화를 했다. 상근: 그냥 간단히 암호화 하자. A를 1이라고 하고, B는 2로, 그리고 Z는 26으로 하는 거야. 선영: 그럼 안돼. 만약, "BEAN"을 암호화하면 25114가 나오는데, 이걸 다시 글자로 바꾸는 방법은 여러 가지가 있어...

백준 Baekjoon 2022.11.26

[C언어] 백준 1388 : 바닥 장식

백준 1388 : 바닥 장식 문제 링크 https://www.acmicpc.net/problem/1388 1388번: 바닥 장식 형택이는 건축가이다. 지금 막 형택이는 형택이의 남자 친구 기훈이의 집을 막 완성시켰다. 형택이는 기훈이 방의 바닥 장식을 디자인했고, 이제 몇 개의 나무 판자가 필요한지 궁금해졌다. 나 www.acmicpc.net 문제 내용 형택이는 건축가이다. 지금 막 형택이는 형택이의 남자 친구 기훈이의 집을 막 완성시켰다. 형택이는 기훈이 방의 바닥 장식을 디자인했고, 이제 몇 개의 나무판자가 필요한지 궁금해졌다. 나무판자는 크기 1의 너비를 가졌고, 양수의 길이를 가지고 있다. 기훈이 방은 직사각형 모양이고, 방 안에는 벽과 평행한 모양의 정사각형으로 나누어져 있다. 이제 ‘-’와 ‘..

백준 Baekjoon 2022.10.03

[C언어] chdir 사용법

chdir 사용법 개요 현재 경로를 이동해주는 함수 man 2 chdir 사용법 1 2 3 #include int chdir(const char *path); cs 성공 시 0 리턴 실패 시 -1 리턴 예제 코드 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 31 32 33 34 #include #include #include #include void create_file() { int fd; if ((fd = open("newfile",O_CREAT, 0644)) == -1) { perror("open failed"); exit(1); } close(fd); } int main(int argc, char ..

[C언어] 백준 1010 : 다리 놓기

백준 1010 : 다리 놓기 문제 링크 https://www.acmicpc.net/problem/1010 1010번: 다리 놓기 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다. www.acmicpc.net 문제 내용 재원이는 한 도시의 시장이 되었다. 이 도시에는 도시를 동쪽과 서쪽으로 나누는 큰 일직선 모양의 강이 흐르고 있다. 하지만 재원이는 다리가 없어서 시민들이 강을 건너는데 큰 불편을 겪고 있음을 알고 다리를 짓기로 결심하였다. 강 주변에서 다리를 짓기에 적합한 곳을 사이트라고 한다. 재원이는 강 주변을 면밀히 조사해 본 결과 강의 서쪽에는 N개의 사..

백준 Baekjoon 2022.01.30

[C언어] GNU readline 사용법

GNU readline 사용법 개요 GNU readline은 명령 줄 인터페이스에서 줄 편집 및 입력 기록 저장 등의 역할을 하는 라이브러리다. 입력 자동완성, 커서 이동, 잘라내기, 복사, 붙여 넣기 등의 기능을 지원하며, Bash 등의 명령 줄 기반 인터랙티브 소프트웨어에서 사용된다. GNU readline wiki readline 설치 1 sudo apt-get install -y libreadline-dev cs readline 개념 man readline 1 char *readline(const char *prompt); cs ※ 문자열을 반환하므로 매번 입력을 받을 때는 메모리 관리에 신경써야 한다. ※ 컴파일 할 때는 -lreadline 플래그를 추가해줘야 한다. ※ ex) gcc sampl..

[C언어] 백준 1987 : 알파벳

백준 1987 : 알파벳 문제 링크 www.acmicpc.net/problem/1987 1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www.acmicpc.net 문제 내용 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으로 이동할 수 있는데, 새로 이동한 칸에 적혀 있는 알파벳은 지금까지 지나온 모든 칸에 적혀 있는 알파벳과는 달라야 한다. 즉, 같은 알파벳이 적힌 칸을 두..

백준 Baekjoon 2021.04.22

[C/C++] atoi 구현 / 문자열을 숫자로

atoi 구현 / 문자열을 숫자로 atoi 기본 개념 및 구조 #include 에 내장된 함수인 atoi는 문자열을 숫자로 바꿔주는 함수이다. atoi의 구조는 아래와 같다. 1. 문자열의 초반에 오는 공백 문자(white-space characters)는 무시한다. - whitespace : \t, \v, \n, \f, \r, ' ' - 아스키코드로는 9부터 13까지, ' '는 32 - man isspace 명령어를 사용해보자(리눅스 한정) 2. 부호(+, -)는 최대 한 개까지만 올 수 있다. - 만일, 두 개 이상이라면 0이 반환된다. - 부호가 없다면 기본 양수이다. 3. 숫자를 한번 읽기 시작한다면 다른 문자가 오기 직전까지만 읽는다. - ex) 1234 → 1234 - ex) 12a34 → 1..

[C언어] 백준 1629 : 곱셈

백준 1629 : 곱셈 문제 링크 www.acmicpc.net/problem/1629 1629번: 곱셈 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. www.acmicpc.net 문제 내용 자연수 A를 B번 곱한 수를 알고 싶다. 단 구하려는 수가 매우 커질 수 있으므로 이를 C로 나눈 나머지를 구하는 프로그램을 작성하시오. 첫째 줄에 A, B, C가 빈칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. Idea A, B, C는 2,147,483,647 이하의 자연수로 int 형으로 표현 가능하다. ※ int 범위 : -2^31 ~ 2^31 - 1 A를 B번 제곱을 ..

백준 Baekjoon 2021.03.21

[C++] 백준 2583 : 영역 구하기

백준 2583 : 영역 구하기 문제 링크 www.acmicpc.net/problem/2583 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net 문제 내용 눈금의 간격이 1인 M×N(M,N≤100)크기의 모눈종이가 있다. 이 모눈종이 위에 눈금에 맞추어 K개의 직사각형을 그릴 때, 이들 K개의 직사각형의 내부를 제외한 나머지 부분이 몇 개의 분리된 영역으로 나누어진다. 예를 들어 M=5, N=7 인 모눈종이 위에 과 같이 직사각형 3개를 그렸다면, 그 나머지 영역은 와 같이 3개의 분리된 영역..

백준 Baekjoon 2021.03.17