본문 바로가기

전체 글

(83)
[BOJ 17626] 백준 Four Squares 풀이 - C++ 사용언어 : C++ 문제풀이 * dynamic programming 이용하기 * int형 배열인 arr에 값 저장 * 순차적으로 접근 ex) arr[26] arr[1]+arr[25], arr[4]+arr[22], arr[9]+arr[15], arr[16]+arr[10], arr[25]+arr[1] 이 중에서 최솟값이 답이 된다 여기서 arr[1],arr[4]... 즉, arr[i*i] 꼴은 항상 답은 1이다 (제곱수) 따라서, arr[26-i*i] 중에서 가장 작은 값을 가진 배열이 답이 된다 전체코드 #include using namespace std; #include #define INT_MAX 50005 int n; int arr[50000]; int main() { ios::sync_with_st..
[BOJ 17219] 백준 비밀번호 찾기 풀이 - C++ 사용언어 : C++ 문제풀이 * key,value 모두 string인 unordered_map을 이용해 key엔 사이트 주소, value엔 비밀번호를 저장했다. (1) address,password 입력받아 map에 대입하기 unordered_map m; //string은 공백을 기준으로 값을 받는다 cin >> N >> M; for (int i = 0; i > address >> pwd; m[address] = pwd; //index를 이용해 저장 } (2) 찾고자 하는 address를 입력받아 map[address]값 출력하기 for (int i = 0; i > address; cout > M; for (int i = 0; i < N; i+..
[BOJ 17608] 백준 막대기 풀이 - C++ 사용언어 : C++ 문제풀이 * 스택 이용! (1) 입력 값들을 순서대로 스택에 저장 stack stck; cin >> N; for (int i = 0; i > tmp; stck.push(tmp); } (2) 스택 순서대로 현재 최대 높이와 비교한다 (현재 높이보다 크면 answer값 +1 해주고, 최대높이(cnt)값도 업데이트 해준다) (그렇지 않으면 스택 pop만 해준다) int cnt = 0; //현재 최대 높이 while (!stck.empty()) { if (stck.top() > cnt) { answer++; cnt = stck.top(); } stck.pop(); } 전체코드 #include using namespace std; #include int N; in..
생활코딩 [HTML 수업] - 정리 https://opentutorials.org/course/2039 를 바탕으로 작성하였습니다 HTML 수업 - 생활코딩 수업의 목적 본 수업은 HTML에 대한 심화된 내용을 다룹니다. HTML의 기본문법과 HTML의 주요한 태그들에 대한 수업을 담고 있습니다. 선행학습 본 수업을 효과적으로 수행하기 위해서는 웹애플리 opentutorials.org 기술소개 HTML : HyperText Markup Language= 하이퍼텍스트를 가장 중요한 특징으로 하는, 마크업이라는 형식을 가진, 컴퓨터 프로그래밍 언어 Language : 언어 (사람과 컴퓨터 사이의 약속)=> html: 사람과 웹 브라우저 사이의 약속 기본문법 (태그) 기본문법 1 (html 파일 만들어보기) - 메모장에 텍스트 작성 후 확장자를..
[BOJ 1874] 백준 스택 수열 풀이 - C++ 사용언어 : C++ 문제풀이 - 배열에 우선 입력값을 저장한다 - stack을 이용해 배열과 동일한 수열을 만들 수 있는지 판별한다 -(+,-는 vector값에 차례로 대입 : push할 땐 +, pop할 땐 -) - 마지막까지 stack에 값이 남아있으면 수열을 만들 수 없음. 비어있을 땐 vector값 차례로 출력 (1) 배열에 입력 값 차례대로 대입 cin >> n; for (int i = 0; i > a[i]; (2) stack 을 이용해 판별하기 for (int i = 1; i a[i]; for (int i = 1; i
[BOJ 1541] 백준 잃어버린 괄호 풀이 - C++ 사용언어 : C++ 문제풀이 (1) 55 - 50 + 40 => 55 - (50+40) = -35 (2) 40+20 - 60+30 => 40+20 - (60+30) = -30 (3) 40-20+30+30 => 40 - (20+30+30) = -40 => '-' 빼기 연산자가 나오면 그 뒤 연산식을 괄호로 묶는다. => 즉, - 연산자가 하나라도 나오면 그 뒤의 피연산자들은 빼기 연산을 진행한다 * 변수 설정 string order; //입력 받는 식 vector operands; // 숫자 저장 string tmp; //숫자 값 임의로 저장 int plus_cnt=0; //더하기 몇 번 해야하는지 bool minus_flag = false; //- 연산자 나왔는지 (1) 연산자, 피연산자 구분하기 (피연..
dreamhack [현대 암호] 정리 https://dreamhack.io/lecture/courses/71 를 바탕으로 작성했습니다. 현대 암호 현대 암호의 암호 기술들과 이들이 제공하는 기능들을 개략적으로 살펴봅니다. dreamhack.io 1. 들어가며 서론 - 대칭키 암호 시스템(Symmetric Key Cryptosystem) : 송신자와 수신자가 같은 키를 공유해야하는 암호시스템 ( * 사전에 서로 키를 공유해야 함) - 비대칭키 암호 시스템(공개키 암호 시스템 : Public Key Cryptosystem) : 송신자와 수신자가 서로 다른 키를 사용하는 시스템 키 공유 알고리즘(Key-Sharing Algorithm) : 외부인이 키가 공유되는 과정을 도청해도, 공유되는 키는 알지 못하게 하는 것 ( 현대 네트워크는 도청에 취약..
dreamhack [머릿말] [고전암호] 정리 https://dreamhack.io/lecture/courses/69 https://dreamhack.io/lecture/courses/70 를 바탕으로 작성했습니다 1. 커리큘럼 소개 -커리큘럼의 목표와 대상 컴퓨터에 대한 의존도가 높아지면서 네트워크를 통한 정보 공유가 늘어났고, 컴퓨터 환경에서 암호학은 중요 해졌다. 이 강의를 통해 실제 상용 프로그램에 쓰이는 암호 알고리즘의 특징을 이해하고, 안전한 서비스를 개발하기 위해 어떤 암호 기술을 사용해야 하는지 알게 된다. -커리큘럼의 주제 암호학(cryptography) : 제 삼자로부터 정보를 보호하는 방법에 대한 연구 키 생성(Key generation) : 암호화 및 복호화에서 사용할 키를 만듦 암호화(Encryption) : 키를 이용해 평문..