본문 바로가기

728x90

전체 글

(478)
[C++ STL] map iterator(반복자) map의 원소는 pair 객체로 저장되며, pari 객체의 first 멤버 변수는 key로 second 멤버 변수는 value이다 예제 코드로 살펴보자 #include #include using namespace std; map m;// map 선언 int main() { m[10] = 4; m[8] = 9; m[100]++; map::iterator iter;// iterator 선언 for (iter = m.begin(); iter != m.end(); iter++) { printf("주소값: %d ", iter); printf("key: %d ", *iter); printf("key: %d value: %d\n", iter->first, iter->second); } map::iterator ite..
[C++ STL] Map 자료구조 1) Map이란? map은 각 노드가 key와 value 쌍으로 이루어진 트리입니다. 특히, 중복을 허용하지 않습니다. 따라서 map은 first, second가 있는 pair 객체로 저장되는 데 first- key로 second- value로 저장됩니다. C++의 map의 내부 구현은 검색, 삽입, 삭제가 O(logn) 인 레드블랙트리로 구성되어 있습니다. 2) Map 기본 형태 map map1; 3) Map 정렬 map은 자료를 저장할때 내부에서 자동으로 정렬합니다. map은 key를 기준으로 정렬하며 오름차순으로 정렬합니다. 만약 내림차순으로 정렬하고 싶은 경우와 같이 사용하면 됩니다. map map1; (만약 다른 방법으로 int데이터를 내림차순으로 정렬하고 싶을 경우, 데이터에 -(마이너스)를 ..
[해시] Level 2 위장 문제 설명 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루어져 있습니다. 스파이가 가진 의상의 수는 1개 이상 30개 이하입니다. 같은 이름을 가진 의상은 존재하지 않습니다. clothes의 모든 원소는 문자열로 이루어져 있습니다. 모든 문자열의 길이는 1 이상 20 이하인 ..
[파이썬] 딕셔너리 자료형 딕셔너리란? 파이썬에서는 Hash 구조를 지원하는데 이 자료형이 딕셔너리(Dictionary)다 이는 Key와 Value를 한 쌍으로 갖는 자료형이다 딕셔너리는 리스트나 튜플처럼 순차적으로 요소값을 구하지 않고 Key를 통해 Value를 얻는다 딕셔너리 구조 딕셔너리의 기본 구조는 {Key1:Value1, Key2:Value2, Key3:Value3 ...} 로 구현된다 아래는 딕셔너리의 예시 구조이다 dic = {'name':'pey', 'phone':'01005065818', 'birth':'0102'} 딕셔너리 쌍 추가 key가 정수면 아래처럼 추가 가능 dic = {1:'a'} dic[2] = 'b' #{2:'b'}쌍 추가 print(dic) #{1: 'a', 2: 'b'} key가 string이..
[보안] 암호화, 해시함수 해시 함수가 뭔지 궁금해서 찾아보다가 보게 된 영상인데, 내가 찾던 내용은 아니지만 유익한 내용이라 정리해둔다! Password System 우리는 보통 로그인 기능을 구현할 때 사용자의 아이디와 비밀번호 정보를 데이터베이스에 저장한다 이 때 비밀번호를 저장하는 방법은 굉장히 중요하다! 만약 우리가 구현한 시스템의 사용자 정보가 해킹된다면 사람들은 우리 시스템을 신뢰하지 못할 것이다 따라서 오늘은 신뢰할 수 있는 비밀번호 시스템에 대해 알아보도록 하자! 1. Bad System 첫번째로 가장 단순하면서도 나쁜 방법은 사용자의 비밀번호를 고대로 데이터베이스에 저장하는 것이다 그러면 비밀번호가 공개되어서, 데이터베이스에 접근할 수 있는 사람이라면 누구든지 볼 수 있기 때문에 저어어어언혀 관리가 되지 않는다 ..
[DS] Hash(해시) Hash Tables는 Key Value System을 이용하여 자료를 정리한다 그 예시로는 사전이 있다 배열과 해시 테이블을 비교해보자 예시로 레스토랑에서 메뉴를 배열과 해시 테이블에 저장한다고 해보자 이 때 메뉴에서 피자의 가격을 찾는다고 생각해보자 만약 배열의 메뉴에서 찾는다면 선형검색을 통해 찾아야 한다 이는 시간이 오래걸리게 된다 메뉴를 해시에 저장하면 아래와 같은 모양이 되고, 여기서 피자의 가격을 찾으려면 그냥 key값으로 pizza를 넘겨주면 그에 대한 value로 피자의 가격이 나올 것이다 자, 여기서 첫번쨰 배열에 저장했을 때의 시간 복잡도는 O(N)이라고 할 수 있다 이는 배열의 원소가 많아질수록 시간이 오래걸리게 된다 -> Linear Time(선형 시간) 하지만 해시 테이블의 경우..
[해시] Level 1 완주하지 못한 선수 문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. 풀이) 이거 전에 풀어본 기억이 있어서 그냥 간단하게 풀었다 해시 문젠데 해시로 풀지 ..
[Github] Pull Request 방법 1. Fork 타겟 프로젝트의 저장소를 내 저장소로 Fork 한다 2. clone, remote 설정 fork로 생성한 내 저장소를 내 데스크톱에 clone한다 $ git clone "http://github.com/xx10222" 저기서 url 부분을 clone할 저장소 url을 입력하면 된다 # 원본 프로젝트 저장소를 원격 저장소로 추가 $ git remote add origin https://github.com/xx10222 # 원격 저장소 현재 설정 확인 $ git remote -v 여기서 origin은 내 저장소의 별명이고 뒤에는 저장소의 url을 입력한다 (난 origin이 익숙해서 그냥 origin으로 사용하는중!) 3. branch 생성 내 데스크톱에서 깃허브로 코드를 추가하는 작업은 br..

728x90