일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 항해99
- 미니프로젝트
- algorithms
- 필기
- 정보처리기사
- java
- Real MySQL
- 회고
- git
- LeetCode
- sqldeveloper
- 알고리즘
- jsp
- If
- 2020년 일정
- Python
- 2020년 제4회 정보처리기사 필기 문제 분석
- 코드숨
- post
- Jackson
- 서평
- Til
- 주간회고
- 뇌정리
- 함수형 코딩
- hackerrank
- 2020년 정보처리기사 4회
- 성적프로그램
- 스터디
- 책리뷰
- Today
- Total
목록전체 글 (174)
조컴퓨터
레디스의 윈도우 버전은 공식적으로 지원하지 않는다. 해당 파일은 최신 리눅스판 레디스와 버전 차이가 있다. Releases · tporadowski/redis · GitHub Releases · tporadowski/redis Native port of Redis for Windows. Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Se... github.com
1) 병합 병렬(merge sort) 이란? 재귀 용법을 활용한 정렬 알고리즘 - 리스트를 절반으로 잘라 비슷한 크기의 두 부분 리스트로 나눈다. - 각 부분 리스트를 재귀적으로 합병 정렬을 이용해 정렬한다. - 두 부분 리스트를 다시 하나의 정렬된 리스트로 합병한다. 2) 알고리즘 구현 ▼ 파이썬 - 어떤 데이터 리스트가 있을 때, 리스트를 앞뒤로 자르는 코드 작성해보기 (일반화) def split_func(data): medium = int(len(data) / 2) print(medium) left = data[:medium] right = data[medium:] print(left, right) - 재귀 용법 활용하기 다음 문장을 코드로 작성해보기 (merge 함수가 있다고 가정) * merge..
1) 퀵 정렬(quick sort) 이란? - 정렬 알고리즘의 꽃 - 기준점(pivot) 을 정해서, 기준점보다 작은 데이터는 왼쪽(left), 큰 데이터는 오른쪽(right) 으로 모으는 함수를 작성 - 각 왼쪽(left), 오른쪽(right) 은 재귀용법을 사용해서 다시 동일 함수를 호출하여 위 작업을 반복함 - 함수는 왼쪽(left) + 기준점(pivot) + 오른쪽(right) 을 리턴 2) 알고리즘 구현 ▼ 파이썬 def qsort(data): if len(data) data[idx]: left.append(data[idx]) else: right.append(data[idx]) return qsort(left) + [pivot] + qsort(right) 1. 만약 리스트의 갯수가 한 개이면 ..
1) 삽입 정렬(insertion sort) 이란? - 삽입 정렬은 두 번째 인덱스부터 시작 - 해당 인덱스 앞에 있는 데이터(왼쪽)부터 비교해서 인덱스 값이 더 작으면 데이터(왼쪽)을 해당 인덱스 값 뒤로 복사 - 이를 인덱스 값이 더 큰 데이터를 만날 때까지 반복, 그리고 큰 데이터를 만난 위치 바로 뒤에 인덱스 값을 이동 2) 알고리즘 구현 ▼ 파이썬 def insertion_sort(data): for idx in range(len(data) - 1): for idx2 in range(idx + 1, 0, -1): if data[idx2] < data[idx2 - 1]: data[idx2], data[idx2 - 1] = data[idx2 - 1], data[idx] else: break retu..
1) 선택 정렬(selection sort) 이란? 다음과 같은 순서를 반복하며 정렬하는 알고리즘 - 주어진 데이터 중에서 최소값을 찾음 - 해당 최소값을 데이터 제일 앞에 위치한 값과 교체함 - 제일 앞의 위치를 뺀 나머지 데이터를 동일한 방법으로 반복하여 교체함 2) 알고리즘 구현 ▼ 파이썬 def selection_sort(data): for stand in range(len(data) - 1): lowest = stand for idx in range(stand + 1, len(data)): if data[lowest] > data[idx]: lowest = idx data[lowest], data[stand] = data[stand], data[lowest] return data 1. for s..
1) 버블 정렬(bubble Sort) 이란? 두 인접한 데이터를 비교해서, 앞에 있는 데이터가 뒤에 있는 데이터 보다 크면 자리를 바꾸는 정렬 알고리즘 2) 알고리즘 구현 - n 개의 리스트가 있는 경우 최대 n-1 번의 로직을 적용한다. - 로직을 1번 적용할 때마다 가장 큰 숫자가 뒤에서부터 1개씩 결정된다. - 로직이 경우에 따라 일찍 끝날 수도 있다. 따라서 로직을 적용할 때 한 번도 데이터가 교환된 적이 없다면 이미 정렬된 상태이므로 더이상 로직을 반복 적용할 필요가 없다. ▼ 파이썬 // Python def bubblesort(data): for idx in range(len(data) - 1):// 반복 swap = False// 교환이 되었는지를 확인하는 변수 for idx2 in ran..
위와 같은 많은 시도가 있었고, 8080 포트의 위험성을 확인하여 포트를 변경했다. 로그인에 여러 차례 실패한 ip 를 제한할 수 있는 fail2ban 을 설정하는 방법도 있다. 일단 단차원적으로 끝냈지만, 추가적인 시도가 확인되면 다른 방법을 적용할 예정이다. 참고) 1. 무작위 스캔 공격? - 친성의 블로그 (chinsun9.github.io) 2. Peemang IT Blog (tistory.com) Netlink GPON RCE Vulnerability (CVE-2018-10562) 1. 개념 Netlink GPON 라우터는 일반적으로 우리가 사용하는 공유기이다. 2. 취약점 설명 해당 라우터를 통해 원격코드 실행 명령어(RCE)를 수행하여 악의적인 코드를 실행시키고 Muhstik, Maria봇넷..
스탠포드 대학교에서 개발한 Karel 이라는 게임을 알게 되어 해보았다. 비교적 간단하다. Karel(디지바이스 같은 아이) 가 정답에서 표기하는 위치에 존재하면 되는 게임이다. 8-5 에서 요구하는 사항은 다음과 같다. Karel 이 Beeper 를 놓는 방향으로만 로직을 짜다가 마지막 위치가 계속 왼쪽 끝에 놓이길래 그제서야 깨달았다. 그래프(게임판) 자체가 짝*짝이라 Karel 이 앞만 보면 안된다는 것을... 뒤로 후퇴도 해야한다는 것을... 그래서 한번 전진했다가 뒤로 후퇴하고 다시 전진했다가 뒤로 후퇴하는 로직으로 다시 작성했다. //Make Karel fill the world //with beepers function main() { //your code here putBeeperLine(..