일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 사회분업론
- 철학
- malware
- Best of the Best
- bob
- codeengn basic rce 01
- 사회적 사실
- CodeEngn
- 리버싱
- 코드엔진
- 자살론
- 에밀 뒤르켐
- 논문리뷰
- CodeEngn Basic 01
- 디지털 포렌식 트랙
- BoB 12기 최종합격 후기
- 코드엔진 베이직
- 코드엔진 basic 5
- BoB 12기
- h4ckinggame
- CodeEngn Basic 5
- Today
- Total
목록전체 글 (97)
woonadz :)
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/xeLYd/btrrsnBq6GV/S1xG1pchwUK0mY82UZCRp0/img.png)
#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; }
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bqeh5J/btrrpTuiLgj/NPzW9HFNThwkZgNerVCJPk/img.png)
자료구조 : 자료를 효율적으로 이용할 수 있도록 컴퓨터에 저장하는 방법. - 배열 : 같은 자료형으로 이루어진 요소가 모여 직선 모양으로 줄지어 있는 자료구조. | 상수식 : 상수만을 포함하는 식, 실행 시점이 아닌 컴파일 시점에 계산. | int a[5]; -> a[0]의 자료형은 int, 배열 a의 자료형은 int[5]형. - C언어 메모리 구조 : 프로그램이 실행될 때마다 RAM(메모리 영역)에 할당. | 데이터 영역 : 전역 변수와 정적 변수 할당, 프로그램 시작 시 할당하고 종료 시 메모리에서 해제. | 스택 영역 : 지역 변수와 매개변수 저장, 함수 호출 완료 시 사라짐. | 힙 영역(빈 공간) : 필요에 따라 동적 메모리 할당. - 난수 생성 | rand() : 이 함수가 반환하는 값은 0 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/KXrd2/btrqMcajUng/HK9Y2yFyVGaXc9lW83XgBk/img.png)
학습 내용 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[..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/vjzOj/btrqAVm2F85/Vxa5OCG016ltDhCHomxKt0/img.png)
3줄 TMI 한 달 넘게 블로그 업로드를 쉬었는데 여러가지 이유가 있었다. 학습 내용 중 얻은 부분, 부족한 부분에 초점을 맞춰 올리기 보다는 일기장에 초점이 맞춰져 있었던 것 같아 고민을 많이 했다. 또 리버싱 문제 풀이를 진행하다보니 어느새 내가 단순 툴만 사용하고 있다는 것을 느꼈다. 정말 컴퓨터 구조에 대해 생각하고 명령어에 대해 고민하고 풀었던 문제가 아닌 답을 맞추기 위한 문제를 풀었었다. 위 이유들 이외에도 나의 나태함 등등 여러가지 이유가 있었다. 학습 내용 strcmp(문자열1,문자열2) : 두 문자열을 비교해 같다면 0을 반환하고 다르다면 1을 반환한다. - 사용 방법 strcmp(배열 변수, 배열 변수) strcmp("문자열", "문자열") - 주의사항 strcmp가 포함된 함수 실행..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/9BRF7/btrl6KhlFBn/MhbCVsPhfWvAxv9TiO9DkK/img.jpg)
배경과 차량 이미지 합치기 코드 import cv2 import numpy as np def plus(hpos,vpos): img_array2 = np.fromfile('C:\\Users\\pc\\OneDrive\\문서\\인공지능\\이미지 합성\\4-2.png',np.uint8) img2 = cv2.imdecode(img_array2, cv2.IMREAD_COLOR) img_array1 = np.fromfile('C:\\Users\\pc\\OneDrive\\문서\\인공지능\\이미지 합성\\1-1.png',np.uint8) img1 = cv2.imdecode(img_array1, cv2.IMREAD_COLOR) h, w, c = img2.shape roi = img1[vpos:vpos+h, hpos:hpo..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bcpFYw/btrl4RaGwvk/7qgPc5cq2DHKbdieKgr0j1/img.png)
개발 환경 : 파이썬 3.9.2 먼저 번호판의 문자를 이름으로 저장한 가상 이미지 데이터 파일들의 제목을 리스트로 옮기는 작업을 구상했다. 이미지 2차원 회전 코드 import os import cv2 import random import numpy as np import imutils file_list = os.listdir('C:\\Users\\pc\\OneDrive\\문서\\인공지능\\가상 번호판 PNG 파일') #가상 번호판 파일의 이름을 리스트로 옮김 file_name = [] for file in file_list: n_word = file[0:-4] #이름만 옮겨지는 것이 아니기에 (.png 와 같은 확장자가 따라옴) 번호판 문자열만 슬라이싱해주기 file_name.append(n_word)..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/KBOUD/btrlU51ybFs/4eNPEhj9fBnSwGP0lsHZnK/img.png)
아마 이 개발에서 쓴 모듈은 코랩과 같은 환경에서 시도해보지 않았다. 그리고 딱히 많은 모듈을 쓰지 않아 2개 정도만 검색해서 cmd에 다운 받아주면 되었기에 노트북에 깔린 파이썬을 이용해 개발하였다. 개발 환경 : 파이썬 3.9.2 완성 코드 #차량 번호판에 대한 규정을 모두 참고한 것이 아님. import numpy as np import random from PIL import Image,ImageDraw,ImageFont list_A = [] number = '0123456789' for num in number: list_A.append(num) #번호판의 숫자를 담은 리스트 list_B = [] korean = '가나다라마바사아자하거너더러머버서어저허구누도로부수우주호고노더소오지두' for kor..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/wOk14/btrlXxpYhrg/pcjk37CaSkGf8NuevTZlUk/img.png)
동적 계획법(動的計劃法, dynamic programming)이란 복잡한 문제를 간단한 여러 개의 문제로 나누어 푸는 방법을 말한다. 이것은 부분 문제 반복과 최적 부분 구조를 가지고 있는 알고리즘을 일반적인 방법에 비해 더욱 적은 시간 내에 풀 때 사용한다. -위키백과- 분할 정복과의 차이점 분할 정복은 큰 문제를 해결하기 어렵기에 작은 문제로 나누어 푸는 방법이다. 하지만 이 작은 문제가 포함된 큰 문제에서 이를 다시 풀어야 한다. 이러한 문제를 해결한 것이 동적 계획법이라고 할 수 있다. 동적 계획법은 큰 문제를 작은 문제로 나누어 푼다는 점에서 분할 정복과 유사하지만 작은 문제를 단 한번만 푼다는 점에서 차이점이 있다고 할 수 있다. 동적 계획법 풀이 한번만 푼 모든 작은 문제의 답을 어딘가(배열..