목록Dev (15)
'll Hacker
정렬 알고리즘선택 정렬 삽입 정렬 버블 정렬 합병 정렬 퀵 정렬 개념 참고)https://hsp1116.tistory.com/33 10825, 국영수, C++학생 정보 = 구조체 선언sort( ) 사용 #include #include #include using namespace std;struct student { // 학생 정보 구조체: 이름, 국어 점수, 영어 점수, 수학 점수 string name; int kor, eng, math;};// 비교 함수bool cmpAdv(const student& s1, const student& s2) { if (s1.kor != s2.kor) {// 국어 점수가 감소하는 순서 return s1.kor > s2.kor; } if (s1.eng != s2.eng)..
그래프란?노드(Node)와 간선(Edge)으로 표현되며 이때 노드를 정점이라고도 말한다.그래프 탐색이란 하나의 노드를 시작으로 다수의 노드를 방문하는 것을 말한다.또한, 두 노드가 간선으로 연결되어있다 = 두 노드는 인접하다 인접행렬(Adjacency Matrix) : 2차원 배열로 그래프의 연결 관계를 표현하는 방식연결리스트라는 자료구조를 이용해 구현하는데, C++이나 자바와 같은 프로그래밍 언어에서는 별도로 연결 리스트 기능을 위한 표준 라이브러리를 제공 인접 리스트(Adjacency List) : 리스트로 그래프의 연결 관계를 표현하는 방식 vector의 배열을 사용하면 편리함.실제로 연결된 노드들에 대한 정보만 저장하기 때문에, 모든 벡터들의 원소의 개수의 합이 간선의 개수와 같음. 간선의 개수..
1158, 요세푸스 문제, C++이 문제를 그대로 이해하면 될 것 같다.그니까, 문제의 예를 보면 입력을 7 3 로 받는다면 이 7의 의미는 앉아있는 사람의 수라고 생각할 수 있고,1, 2, 3, 4, 5, 7을 나타낼 수 있다. 3은 제거되는 사람의 번호를 의미를 하게 되는데나는 반복문을 구현할 때 1~3까지 큐에 삽입 후 그 인덱스 번호가 3인 경우, remove 동적배열에 삽입하고,인덱스 번호가 3이 아닌 경우 큐 맨 뒤에 삽입 #include #include #include using namespace std;vector calcJosephus(queue Q,int N,int K){ vector remove; int q_front, j=0; while(N!=remove.size()) { for..
그리디 알고리즘 눈앞의 이익만 우선 추구하는 알고리즘최적해를 찾을 수 있으면 그것을 목표로 삼고 찾기 어려운 경우에는 주어진 시간 내에 그런대로 괜찮은 해를 찾는 것을 목표로 삼는다 - 그래서 대부분 최적화 문제를 대상으로 함 예를 들어, n개의 정점을 가지고 사이클을 이루지 않은 총 n-1개의 간선으로 이뤄지는 최소 신장 트리를 만들고자 한다.아직 간선이 하나도 없는 상태라고 하면, n-1개의 간선이 될 때까지 집합을 키워나가게 된다. 이때, 어떤 간선을 선택할지 결정해야한다.최소신장트리같은 경우에는 간선을 하나 더할 때마다 해당 간선이 기존에 선택된 간선들과 사이클이 형성되면 안된다.Greedy(c){ s 1) 원소를 선택하는 기준이 눈앞의 이익을 우선2) 원소를 하나 더하기 전에 해당 원소를 더함으..
모놀리식 아키텍처 vs 마이크로 서비스 아키텍처모놀리식 아키텍처= 하나의 큰 목적이 있는 서비스 또는 애플리케이션에 어떤 기능이 통합되어 있는 구조장점 : 초기 단계에서 설계하기 용이함, 단순한 구현과정, 코드 관리 간편.단점 : 서비스가 성장할수록 서비스 간의 관계가 매우 복잡 마이크로 서비스 아키텍처= 하나의 큰 목적이 있는 서비스 또는 애플리케이션에 각 기능이 독립된 서비스로 분리되어 실행되며, API Gateway 등을 통해 서로 통신.장점 : 서비스 재사용, 서비스 변경 시 전체 영향 안 미침, 사용자의 요구사항에 따라 가용성을 즉각적으로 확보해야 하는 IaaS 환경에 적합함 IaaS클라우드 서비스의 한 종류로, 물리적 하드웨어 대신 가상화된 인프라를 클라우드에서 제공단점 : 관리가 복잡하며,..
Django Authentication이란?HTTP 헤더에 사용자 이름과 비밀번호를 포함하여 인증하는 방식, 주로 테스트 용도로 사용 설정이 간단하고 빠르게 구현이 가능하지만, 보안이 낮아서 HTTPS와 함께 사용해야 안전하다.매 요청마다 자격 증명을 포함하므로, 인증 정보가 노출될 수 있다. Session-Based AuthenticationDjango의 기본 인증 방식,사용자가 로그인하면 서버에 세션을 생성하고 세션ID를 클라이언트에 쿠키로 저장함.💡쿠키?웹 서버가 생성하여 웹브라우저로 전송하는 작은 정보 파일웹 브라우저는 수신한 쿠키를 미리 정해진 기간 동안 또는 웹 사이트에서의 사용자 세션 기간 동안 저장함.웹 브라우저는 향후 사용자가 웹 서버에 요청할 때 관련 쿠키를 첨부함.사용자 기기의 지정..
django 웹 프레임워크를 기반으로 한 도구세트로, django를 이용해서 REST api를 만들기 위한 라이브러리 DjangoDjango REST Framework자체 웹 템플릿에게 데이터 전달풀스택 개발을 위한 목적으로 사용html을 응답플랫폼의 클라이언트에게 데이터를 전달백엔드 API 서버 개발을 위한 목적으로 사용됨.json 형태의 response 응답 RESTful API? 간단하고 효율적이고 호환성이 높음!REST : 인터넷에서 컴퓨터 또는 시스템 간 정보를 주고 받는 방식의 하나- URL과 웹 페이지를 보거나 변경하는 행위를 사용하여 정보를 쉽고 간단히 찾을 수 있게 함.- 웹 아키텍처 스타일로 리소스의 상태를 HTTP 메서드를 통해 전송하는 방식 REST 원칙에 기반해 서버의 리소스를..
회원가입 및 로그인Django 의 내장 시스템은 사용자 계정, 그룹, 권한, 쿠키 기반의 사용자 세션을 처리 [모델 백엔드]사용자 모델(User 객체) : Django는 username, password, email, first_name, last_name 등의 필드를 포함한 내장 사용자 모델을 제공- 일반적으로 사이트와 상호작용하는 사람들을 나타내며 액세스 제한, 사용자 프로필 등록, 콘텐츠와 작성자 연결 등과 같은 작업을 활성화하는데 사용됨.폼 : Django는 로그인, 로그아웃, 비밀번호 재설정, 비밀번호 변경 작업에 사용할 수 있는 준비된 폼을 제공뷰 : Django에는 사용자 인증 작업을 처리하는 뷰가 포함되어 있음.미들웨어 : Django는 주어진 HTTP 요청과 관련된 사용자를 자동으로 결정..