본문 바로가기

전체 글169

백준 15651 - N과M(3) c언어 https://www.acmicpc.net/problem/15651 15651번: N과 M (3) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 1. 이전문제에서는 flag를 사용해서 중복 체크를 했지만 이번문제에서는 그럴 필요가 없다. 2. flag 를 지우고 result[count] = i 로 바로바로 배열에 넣고 재귀를 돌리는 전략을 사용했다. 나의답안) #include voidDFS3(int *result, int count, int N, int M) { inti; if (count == M) { i = 0; while (i < .. 2023. 1. 17.
[리눅스]perror함수 - 오류 메시지 출력 함수 perror함수란? 리눅스에는 시스템콜 및 라이브러리 함수를 수행하다가 오류가 발생하면 사용자의 프로그램으로 오류 결과를 넘겨준다. 이때 사용하는 함수가 perror 함수이다. return 값 시스템 콜 오류 시: -1 라이브러리 함수 오류 시: NULL perror함수 형식 #include voidperror(const char *str) str에는 오류메시지 앞에 쓰고 싶은 말을 넣으면 된다. 예제 int main(void) { int fd; fd = open("file", O_RDONLY); if (fd == -1){ perror("문제가 있습니다."); exit(1); } } 출력문구 문제가 있습니다.: No such file or directory 2023. 1. 16.
백준 15650 - N과M(2) c언어 https://www.acmicpc.net/problem/15650 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 1. 이전에 풀었던 N과M(1)과 매우 유사하다 단지 오름차순으로 출력이 되어야한다는것이 다르다. 2. 오름차순이니까 prev라는 변수를 따로 선언해서 prev = result[count - 1] 이라는 조건으로 오름차순을 만들어준다. 3. i = prev 조건으로 인해 while문이 돌아가면서 오름차순이 만들어진다. 4. 나머지는 전에 했던 N과M(1)의 내용과 동일하다. 나의답안) #incl.. 2023. 1. 14.
백준 15649번 -N과M(1) c언어 https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 1. 1줄씩 출력해야 한다고 생각해서 배열을 사용하여 내용물을 저장했다가 출력하자는 생각함 2. 이떄 서로 중복 없이 숫자를 골라서 저장하고 출력해야 한다. 따라서 DFS전략을 이용해 재귀문을 사용한다. 3. flag 를 사용해서 중복되는 숫자를 판별해준다. 나의 답안) #include voidDFS(int*result, int count, int N, int M) { inti,j; intfla.. 2023. 1. 11.
백준 1436번 - 영화감독 숌 c언어 https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 1. 문제 이해부터 잘해야된다. 666이 포함된 숫자들 중에서 N번째로 작은 숫자를 출력하라는 말이다. 5번째 4666 6번째 5666 7번째 6660 8번쨰 6661 여기서 생각해보면 7번째에 만약 5666 -> 6666 이된다면 6660보다 더 큰 숫자가 된다 즉 666이 연속해서 나오는 숫자들 중에서 작은순서대로 가야하는데 5666 다음으로 작은숫자가 6666이전에 6660이 존재한다.. 2023. 1. 8.
day -1 밥편 1. 밥 먹었어? Did you have lunch(breakfast/dinner)? 2. 오늘 일어나서 뭐 먹었어? Have you eaten today? (이든) Have you eaten at all today? 3. 언제 먹었어? when did you eat? 3. 뭐 먹었어? what did you have(eat)/get? 4. 배 안고파? Aren't you hungry? 5. 배고프지? You must be hungry. 6. 저녁은 어떻게 하실거에요? What are you going to do for dinner? (왓알류고나두뽈) Do you have any dinner plans? 7. 뭐 좀 먹을래? Do you want somthing to eat? (섭음 투 잇) 뭐 좀 드실.. 2023. 1. 5.
백준 7568 - 덩치 c언어 https://www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net 1. 문제 조건을 헷갈리기 쉬운 문제이다. 덩치가 되는 조건을 생각했을 떄 몸무게가 키가 같을 경우는 덩치를 판단할수 없는 조건이된다. 나의 답안) #include intmain() { intn, i, j, rank; intweight[50] = {0}; inttall[50] = {0}; scanf("%d\n", &n); i = 0; while (i < n) { scanf("%d %d.. 2023. 1. 5.
백준 2231 c언어 -분해합 https://www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 간단한 프루트포스 알고리즘 문제이다 1. 문제에서 주어지는 숫자로 생성자를 찾는 규칙이 없을까 생각해봤는데 없었다. 2. 생성자가 있을수도 있고 없을수도 있을뿐더러 생성자중에서 가장작은것을 출력하라고 했기 떄문이다. 3. 따라서 전략을 최소 숫자인 1부터 각자리수와 합하여 주어진 숫자와 비교해서 답을 찾는 방법을 선택했다. 나의 답안) #include int main(.. 2023. 1. 5.
virtual box Linux 명령어 1. uname -a • 시스템 정보를 출력 ( -a 는 옵션 -p 를 제외하고 uname 의 모든 옵션에 해당하는걸 출력하라는 옵션) 2. nproc • User당 사용할 수 있는 프로세스 최대 개수 출력 3. free • free 명령어를 사용하면 쉽게 메모리 사용량과 여유량 그리고 캐싱으로 사용되는 메모리가 얼마나 있는지 파악 • [-b | -k | -m | -g] : 바이트, 키비바이트, 메비바이트, 기비바이트 단위로 출력 4. df • 리눅스 시스템 전체의 (마운트 된) 디스크 사용량 을 확인 • -h : 이 옵션은 보기편한 용량크기로 보여준다.(GB,MB 등등) 5. top • 시스템의 상태를 전반적으로 가장 빠르게 파악 가능(CPU, Memory, Process) • 옵션 없이 입력하면 in.. 2023. 1. 2.
백준 2798 블랙잭 (C언어) https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 나의 답안) #include intmain(void) { intN,M; intcard[100] = { 0 }; intmax, result = 0; scanf("%d %d", &N, &M); for(int i = 0; i < N; i++) scanf("%d", &card[i]); for(int i = 0; i < N; i++) { for(int j = i + 1; j.. 2023. 1. 1.
728x90