일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 세마포어
- h4ckinggame
- BoB 12기
- CodeEngn
- 필기
- malware
- Best of the Best
- BoB 12기 최종합격 후기
- 정보기
- 디지털 포렌식 트랙
- 프로그래머스
- Active Directory
- 리버싱
- 코드엔진
- bob
- 뮤텍스
- 정보보안기사
- cve-2024-6387
- race condition
- 디지털 포렌식 전문가 2급
- 디포전
- dll side-loading
- 디포전 2급
- cve-2022-26923
- DLL 사이드로딩
- 논문리뷰
- Today
- Total
목록코딩테스트 (67)
SEO

첫번째 제출 때는 프로토타입 선언 부분에 수정하지 않은 부분이 있어 컴파일 에러가 났고 두번째 제출 때는 출력값 오타 때문에 컴파일 에러가 났다. 두번 모두 어이없는 이유로 틀렸다. 최종 제출 코드 #define _CRT_SECURE_NO_WARNINGS #include int recursion(int num, int num2); int main() { int N; scanf("%d", &N); printf("어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다.\n"); recursion(N, N); return 0; } int recursion(int num,int num2) { //재귀에 사용할 num과 기존의 값을 유지하는 num2 int i; if (num > 0) { for (i = 0;..

재귀란? 어떤 사건이 자기 자신을 포함하고 다시 자기 자신을 사용하여 정의될 때 '재귀적' 이라고 함. 직접 재귀와 간접 재귀 직접 재귀란 자신과 같은 함수를 호출하는 것. 간접 재귀란 함수 a가 함수 b를 호출하고, 다시 함수 b가 함수 a를 호출하는 구조이다. 재귀 알고리즘에 알맞은 경우 - 풀어야 할 문제가 재귀로 정의되는 경우 - 계산 할 함수가 재귀로 정의되는 경우 - 처리할 데이터 구조가 재귀로 정의되는 경우 유클리드 호제법 최대공약수는 y가 0이면 x이고, y가 0이 아닐 경우 gcd(y, x%y) 이다. 하향식 분석과 상향식 분석 하향식 분석이란 가장 위쪽의 함수 호출부터 시작해 계단적으로 자세히 조사해 가는 분석 기법으로 같은 함수의 호출이 여러번 나올 수 있기 때문에 경우에 따라 효율적..
1. 스택 스택이란? 데이터를 일시적으로 저장하기 위해 사용하는 자료구조로 후입선출 구조이다. 2. 큐 큐란? 데이터를 일시적으로 쌓아 두기 위한 자료구조로 선입선출 구조이다. - 인큐(enqueue) : 데이터를 넣는 작업 - 디큐(dequeue) : 데이터를 꺼내는 작업 - 프런트(front) : 데이터를 꺼내는 쪽 - 리어(rear) : 데이터를 넣는 쪽 링 버퍼란? 베열의 처음과 끝이 연결되어있는 자료구조로 기존 큐에서 발생하는 요소 이동 문제를 해결할 수 있다. - 요소의 개수가 n인 배열에 계속해서 데이터가 입력될 때 가장 최근에 들어온 데이터 n개만 저장하고 오래된 데이터는 버리는 용도로 사용 가능.

※ 용도나 목적, 실행 속도, 자료구조 등을 고려하여 알고리즘 선택 1-1. 검색 알고리즘 배열 검색에 사용되는 알고리즘 - 선형 검색 : 무작위로 늘어놓은 데이터 모임에서 검색을 수행 - 이진 검색 : 일정한 규칙으로 늘어놓은 데이터 모임에서 아주 빠른 검색을 수행 - 해시법 : 추가, 삭제가 자주 일어나는 데이터 모임에서 아주 빠른 검색을 수행 방법 1) 체인법 : 같은 해시 갑스이 데이터를 선형리스트로 연결하는 방법 방법 2) 오픈 주소법 : 데이터를 위한 해시 값이 충돌할 때 재해시하는 방법 1-2. 선형 검색 선형 검색(순차 검색)이란? 배열에서의 검색 : 원하는 키 값을 갖는 요소와 만날 때까지 맨 앞부터 순서대로 요소를 검색 ▷ 일반적으로 배열의 요소 개수가 n개일 때, 조건을 판단하는 횟수..

#define _CRT_SECURE_NO_WARNINGS #include int main() { int N,i,j,k; scanf("%d", &N); for (i = N; i > 0; i--) { //N번째줄 for (k = 0; k 0; j--) { printf("*"); } printf("\n"); } for (i = 2; i 0; k--) { printf(" "); } for (j = i; j < i * 2 + i-1; j++) { printf("*"); } printf("\n"); } return 0; }

자료구조 : 자료를 효율적으로 이용할 수 있도록 컴퓨터에 저장하는 방법. - 배열 : 같은 자료형으로 이루어진 요소가 모여 직선 모양으로 줄지어 있는 자료구조. | 상수식 : 상수만을 포함하는 식, 실행 시점이 아닌 컴파일 시점에 계산. | int a[5]; -> a[0]의 자료형은 int, 배열 a의 자료형은 int[5]형. - C언어 메모리 구조 : 프로그램이 실행될 때마다 RAM(메모리 영역)에 할당. | 데이터 영역 : 전역 변수와 정적 변수 할당, 프로그램 시작 시 할당하고 종료 시 메모리에서 해제. | 스택 영역 : 지역 변수와 매개변수 저장, 함수 호출 완료 시 사라짐. | 힙 영역(빈 공간) : 필요에 따라 동적 메모리 할당. - 난수 생성 | rand() : 이 함수가 반환하는 값은 0 ..

학습 내용 pow 함수 - 사용 방법 pow(double base, double n) : base의 n승 - 주의 사항 #include 헤더파일을 선언해준 후 pow 함수 호출 sqrt 함수 - 사용 방법 sqrt(double x) : x의 제곱근 - 주의 사항 #include 헤더파일을 선언해준 후 sqrt 함수 호출 처음에는 a,b,c 변수를 선언하여 각각 변의 길이를 할당하려고 했었다. 이 방법이 불가능 한 것은 아니지만 if문으로 하나 하나 판별 후 변수 할당이 필요해 코드가 쓸데없이 길어질 것 같았다. 따라서 배열을 선언해 오름차순 정렬 방식을 사용했다. 1차 실패 코드 #define _CRT_SECURE_NO_WARNINGS #include #include #define L 3 int arr[..

3줄 TMI 한 달 넘게 블로그 업로드를 쉬었는데 여러가지 이유가 있었다. 학습 내용 중 얻은 부분, 부족한 부분에 초점을 맞춰 올리기 보다는 일기장에 초점이 맞춰져 있었던 것 같아 고민을 많이 했다. 또 리버싱 문제 풀이를 진행하다보니 어느새 내가 단순 툴만 사용하고 있다는 것을 느꼈다. 정말 컴퓨터 구조에 대해 생각하고 명령어에 대해 고민하고 풀었던 문제가 아닌 답을 맞추기 위한 문제를 풀었었다. 위 이유들 이외에도 나의 나태함 등등 여러가지 이유가 있었다. 학습 내용 strcmp(문자열1,문자열2) : 두 문자열을 비교해 같다면 0을 반환하고 다르다면 1을 반환한다. - 사용 방법 strcmp(배열 변수, 배열 변수) strcmp("문자열", "문자열") - 주의사항 strcmp가 포함된 함수 실행..