닥치고 코딩 85

완전 탐색(Brute-force Search)

모든 문제를 푸는 데 있어서 가장 쉽고 간단한 방법. 완전탐색, 브루트포스(Brute-force)는 가능한 경우를 일일이 다 탐색하는것. 절대 틀릴 일은 없는 강력한 방식이지만, 당연히 시간은 최대로 들어간다. 따라서 알고리즘에 잘 나오진 않지만 기본이 되기 때문에 알아보자 예제는 백준알고리즘 2798번 블랙잭문제 문제 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 있다. 한국 최고의 블랙잭 고수 김정인은 새로운 블랙잭 규칙을 만들어 상근, 창영이와 게임하려고 한다. 김정인 버전의 블랙잭에서 각 카드에는 양의 정수가 쓰여 있다. 그 다음, 딜러는 N장의 카드를 모두 숫..

알고리즘 2020.09.17

알고리즘 공부 순서 / 방법

1. 언어 : python 2. 참고할 만한 사이트 : 백준, 알고스팟, 프로그래머스, 유튜브, 등. 3. 공부 순서 브루투포스(완전 탐색) 그리디알고리즘(탐욕법) DFS(깊이우선) BFS(너비우선) 분할 정복 큐 스택 다이나믹 프로그래밍 (초급) 이분 탐색 다이나믹 프로그래밍 (중급) 다익스트라 벨만 포드 플로이드 최소 스패닝 트리 세그먼트 트리(탑-다운) 인덱스 트리(바텀-업) 팬윅트리 LCA(Lowest Common Ancestor) 비트마스크 서로소 집합그리디알고리즘(탐욕법)

알고리즘 2020.09.17

ssh 호스트이름으로 비밀번호 입력없이 접속하기

초간단 ssh 호스트이름으로 비밀번호 입력없이 접속하기 test라는 컴퓨터의 서버에서 dev1(123.123.123.123)이라는 컴퓨터 서버에 비밀번호 없이 ssh연결 1. 호스트 연결 (test) vi /etc/hosts == test서버의 hosts파일 열어서 123.123.123.123 dev1 == 아이피,호스트이름 입력후 저장 2. ssh key생성(개인키, 공유키) (test) ssh-keygen -t rsa -C "test key" -t는 키의 타입이 rsa인지 dsa인지 정하는 플래그고 -C는 코멘트를 남기는 플래그 위와 같이 입력하면ssh_key와 ssh_key.pub이 생성되는데 *.pub 파일이 공개키로, dev1서버에 등록하면 비밀번호 없이 접속이 가능해진다 .pub 내용을 dev..

리눅스 2020.09.10

SSL(Secure Socket Layer)이란?

1. SSL의 개념 SSL(Secure Socket Layer) 프로토콜은 처음에 Netscape사에서 웹서버와 브라우저 사이의 보안을 위해 만들었다. SSL은 Certificate Authority(CA)라 불리는 서드 파티로부터 서버와 클라이언트의 인증을 하는데 사용된다. 그림은 SSL 아키텍처 구조를 나타낸 그림이다. HTTP 프로토콜 상위에 통신시 보안을 위한 SSL 관련 프로토콜이 있는 방식. 실제 통신 내용을 상세히 살펴보면 클라이언트와 서버간 공유하는 암호화키를 가지고 암호화된 데이터가 송수신 되는 방식. HTTPS vs HTTP HTTP는 암호화되지 않은 방법으로 데이터를 전송하기 때문에 서버와 클라이언트가 주고 받는 메시지를 감청하는 것이 매우 쉽다. HTTPS는 SSL 프로토콜 위에서 ..

기타 2020.09.03

php break, return, exit 구분

break = 루프 탈출 - for, foreach, while 등 여러 번 반복되는 루프의 경우에 해당됨 - 루프 이후에 등장하는 코드를 계속 실행함 - if문은 반복문이 아니라 조건 충족시 1번만 실행되는 코드이므로 해당없음 return = 함수 탈출 또는 인클루드 탈출 - 함수 안에서 쓰면 함수 실행을 종료하고, 그 함수를 호출했던 지점으로 돌아가서 계속 실행함 - 함수 밖에서 쓰면 현재 파일을 인클루드했던 파일로 돌아가서 계속 실행함 - 함수 밖인데 인클루드한 것도 없으면 그냥 종료됨, 즉 exit과 동일한 효과가 됨 exit, die = 무조건 종료 - 말 그대로 프로그램이 죽어버림 정리. break는 루프(for, while, foreach)에서만 사용, 해당 루프가 끝나고 밑으로 흐름. re..

php 2020.09.03

dig 명령어 소개 및 사용방법

dig (domain information groper) 란? dig는 네트워크 관리 도구 중 하나로 DNS (Domain Name System) 를 질의할 수 있는 도구. nslookup 보다 더 편한 인터페이스와 사용법을 제공. 이와 더불어 IDN (Internationalized Domain Name) 쿼리를 지원. (nslookup도 지원) dig 사용법 dig는 간단하게 조회하고자 하는 도메인명을 입력하면 됩니다. dig 기본 문법은 아래와 같습니다. Usage: dig [@global-server] [domain] [q-type] [q-class] {q-opt} {global-d-opt} host [@local-server] {local-d-opt} [ host [@local-server] {..

리눅스 2020.08.31

MX 레코드란?

* MX 레코드란? 메일 익스체인저 레코드(mail exchanger record, MX 레코드, MX record)는 인증되고 유효성이 확인된 도메인 네임 시스템의 리소스 레코드의 일종으로, 수신자의 도메인 중간에 이메일 메시지 수용을 책임지는 메일 서버, 또 여러 메일 서버를 이용할 수 있을 경우 메일 전달 우선순위 제어에 사용되는 선호 값을 규정한다. 도메인 네임의 MX 레코드 집합은 이메일이 어떻게 간이 우편 전송 프로토콜(SMTP)로 라우팅되는 것이 좋을지를 규정한다. 즉 MX 레코드란 '메일 서버 주소! 도메인과 메일 서버(메일 서비스 업체)가 있다고 도메인으로 메일 사용이 바로 가능 하지는 않고 해당 도메인에 MX 레코드가 설정돼야 메일 이용이 가능. MX 값 변경시 네임서버 리졸빙 시간 등..

기타 2020.08.31

php array_multisort

들어가기전 기본적인 배열 정렬들 sort() - 배열정렬. 1,2,3처럼 오르차순으로 정렬. (ASC) rsort() - 배열을 역순으로 정렬, reverse의 약자 r. (DESC) asort() - Associative Arrays([키 => 내용])을 내용 기준으로 오름차순으로 정렬합니다. (ASC) ksort() - Associative 배열에서 asort가 내용을 기준으로 했다면 ksort는 키 값을 기준으로 정렬. (ASC) arsort() - Associative 배열에서 내용 기준, 역순으로 정렬합니다. (DESC) krsort() - Associative 배열에서 키 값 기준, 역순으로 정렬합니다. (DESC) array_multisort() 다차원배열 정렬 시간 없는 개발자들을 위해 굵..

php 2020.08.31