[Algorithm] 문자열 재정렬 (C++) 문제 알파벳 대문자와 숫자(0~9)로만 구성된 문자열이 입력으로 주어진다. 이 때 모든 알파벳을 오름차순으로 정렬하여 이어서 출력한 뒤에, 그 뒤에 모든 숫자를 더한 값을 이어서 출력한다. 입력: 첫째 줄에 하나의 문자열 S가 주어진다(1 > scores; //입력받은 문자열의 수만큼 반복하며 계산한다. for (int i = 0; i < scores.size(); i++) { if ('0' Programming/Programming 풀이 2020.10.17
[Baekjoon] 18406번 럭키 스트레이트(C++) https://www.acmicpc.net/problem/18406 18406번: 럭키 스트레이트 첫째 줄에 점수 N이 정수로 주어진다. (10 ≤ N ≤ 99,999,999) 단, 점수 N의 자릿수는 항상 짝수 형태로만 주어진다. www.acmicpc.net 문제 현재 캐릭터의 점수를 N이라고 할 때, 점수 N을 자릿수 기준으로 반으로 나누어 왼쪽 부분의 각 자릿수의 합과 오른쪽 부분의 각 자릿수의 합을 더한 값이 동일한 상황을 의미한다. 예) 현재 점수가: 123,402라면 왼쪽 부분의 각 자릿수의 합은 1+2+3, 오른쪽 부분의 각 자릿수 합은 4+0+2이므로 두 합이 6으로 동일하여 럭키 스트레이트를 사용할 수 있다. 입력: 첫째 줄에 점수 N이 정수로 주어진다. (10 ≤ N ≤ 99,999,9.. Programming/Programming 풀이 2020.10.17
[Windows] 파일 해시값 확인하기 1. CMD를 이용하여 해당 파일 위치로 이동 2. certutil -hashfile [filename] [Hashalgorithm] 명령어 사용하기 OS/Windows 2020.10.06
[Algorithm] 그리디 알고리즘 - 거스름돈 문제(C++) www.youtube.com/watch?v=PNPIk3hc6ic 그리디(Greedy) 알고리즘 그리디 알고리즘: 당장 눈 앞에 뵈는 최적의 상황을 쫓는 알고리즘, 단순한 형태이다. 장점: 최적의 해에 근사한 값을 빠르게 구할 수 있다. 정렬기법이 함께 이용 그리디 알고리즘이 최적의 해를 보장하는 경우도 있지만 그렇지 않은 경우도 많다. 그럴 경우에는 다이나믹 프로그래밍 등의 기타 알고리즘 기법을 적용하여 해결해야한다. 문제설명 & 풀이 문제: 1260원을 거슬러주어야 할 때 가장 적은 숫자의 화폐를 이용해 거슬러주는 경우에 대해서 찾아본다. 풀이 가장 큰 동전 먼저 계산을 해준다. 그리디 알고리즘이란? 큰 경우부터 찾는 알고리즘과 같이 간단하게 탐욕적으로(한가지 경우만 보고 쫓는다) 문제를 해결하는 기법.. Programming/Programming 풀이 2020.09.26
[Programmers] 체육복 풀이(C++) 문제 설명 바로 앞 번호의 학생이나 바로 뒷 번호의 학생에게만 체육복을 빌려줄 수 있다. 전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담긴 배열 reserve가 매개변수로 주어질 때, 체육 수업을 들을 수 있는 학생의 최댓값을 return 해야 한다. Error Code #include #include #include using namespace std; int solution(int n, vector lost, vector reserve) { if (n30) return 0; int answer = n-lost.size(); for(int i=0; i Programming/Programming 풀이 2020.09.26
[Network] 방화벽(Fireware)에 대해서 1. 방화벽(Firewall)이란? 외부로부터 침입을 막는 벽, 물리적으로 네트워크를 연결하고 절단시키는 구조를 갖고 있기 때문에 응용 프로그램을 고칠 필요 없이 쉽게 사용할 수 있고 네트워크에 흘러 다니는 모든 패킷을 검사하므로 해킹과 같은 외부 침입을 근본적으로 막을 수 있다. 네트워크 계층(Network Layer)의 IP 주소와 전송 계층(Transport Layer)의 Port 주소를 기반으로 방화벽 룰셋에 따라 패킷 필터링을 수행하는 보안장비이다. 접근통제목록(ACL, Access Control List)에 따라 보안정책 설정 방화벽 위치: DMZ 구간과 내부망 사이, 내부망 안에서 서로 다른 존에 위치 차세대 방화벽(NGFW, Next Generation Firewall) 출시 2. 방화벽 .. Security/Network 2020.09.18
[Network] 네트워크 FTP Active Mode, Passive Mode 정의 및 차이점 FTP Active Mode, Passive Mode 정의와 차이 알아보기 FTP (File Transfer Protocol) TCP/IP 프로토콜을 가지고 서버와 클라이언트 사이의 파일 전송을 하기 위한 프로토콜, 두 가지 모드가 존재한다. 1) Active Mode - 사용위치: 방화벽이 없는 환경에서 주로 사용, 방화벽이 존재한다면 해당 포트를 열어서 사용하거나 NAT 환경에 있는 네트워크라면 포트 포워딩을 해줘야 한다. - 작동원리 >>최초 접속 요청: 클라이언트 -> 서버의 21번 포트에 접속을 요구한다. 서버는 정상적인 접근일 경우 그에 대해 승인을 한다. >> Data 전송: 클라이언트는 Data 전송을 위한 접속 Port를 서버에게 알려준다. 서버는 20번 포트를 이용하여 클라이언트가 알려.. Security/Network 2020.09.14
[Network] File Signature(파일 시그니처) File Magic Number(File Signature=시그니처) 정의 파일들이 각각 고유한 포맷을 가지고 있는데 포맷의 기본이 되는 내용이 파일 시그니쳐이다. 파일의 처음에만 존재하는 파일 포맷도 있지만 파일의 마지막에도 존재하는 포맷이 있다. 각 파일의 형식마다 정해져 있는 특정 바이트로 파일에 포함되는 몇 개의 Bytes >> 헤더(Header) 시그니처: 파일의 처음에 존재하는 시그니처 >> 푸터(Footer or Tailer) 시그니처: 파일의 마지막에 존재하는 시그니처 사용용도 파일 포맷 분석, 악성코드 분석, 파일 복구 등에 중요하게 쓰인다. 파일 시그니처 종류 http://forensic-proof.com/archives/300 파일 시그니처 모음 (Common File Signatur.. Security/Network 2020.09.14
[Network] SSL/TLS (자세히) 대칭키/비대칭키 => 키동기화 방식 => SSL/TLS => SSL MITM 1. 대칭키/비대칭키 정의 및 차이점 대칭키(비밀키) 비대칭키(공개키) 정의 송신자와 수신자가 같은 키를 사용하는 암/복호화 알고리즘 - 스트림 암호: 연속적인 비트/바이트를 계속해서 입력 받아, 그에 대응하는 암호화 비트/바이트를 생성하는 방식 - 블록암호: 정해진 한 단위(블록)을 입력 받아 그에 대응하는 암호화 블록을 생성하는 방식 송신자는 외부에 공개된 키로 암호화하여 송신하고 수신자는 개인키로 복호화 하는 알고리즘 KEY 하나의 키로 암호화와 하고 같은 키로 복호화를 진행한다 키는 외부에 노출되면 안되므로 비밀키 라고도 한다. 송신자: 외부에 공개된 공개키(Public Key) 수신자: 개인키(Private Key) K.. Security/Network 2020.09.14
[200911] "블러투스(BLURtooth)" m.boannews.com/html/detail.html?tab_type=1&idx=91114 블루투스 4.0~5.0에 적용될 수 있는 중간자 공격 취약점, 블러투스 블루투스 관련 고위험군 취약점이 발견됐다. 이 취약점을 익스플로잇 할 경우 인증을 통과하지 못한 공격자들이 페어링 된 장비들 간 통신 내용을 바꾸거나 엿들을 수 있게 된다. 이 취약점은 �� m.boannews.com 블루투스 4.0~5.0에 적용될 수 있는 중간자 공격 취약점, 블러투스 줄거리 블러투스(BLURtooth) 정의 - CVE-2020-15802 - 블루투스 관련 고위험군 취약점 - 익스플로잇할 경우 인증을 통과하지 못한 공격자들이 페어링 된 장비들 간 통신 내용 변경, 엿듣기 가능하다. - CTKD 구성 요소를 조작해 블루투스.. Security/보안뉴스요약 2020.09.11