본문 바로가기

전체 글

(78)
프로그래머스 - 해시/위장/C++ 문제 설명스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다.예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 종류이름얼굴동그란 안경, 검정 선글라스상의파란색 티셔츠하의청바지겉옷긴 코트스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루어져 있습니다.스파이가 가진 의상의 수는 1개 이상 30개 이하입니다.같은 이름을 가진 의상은 존재하지 않습니다.clothes의 모든 원소는 문자열로 ..
프로그래머스 - 해시/전화번호 목록/C++ 문제 설명전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다.전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다.구조대 : 119박준영 : 97 674 223지영석 : 11 9552 4421전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 제한 사항phone_book의 길이는 1 이상 1,000,000 이하입니다.각 전화번호의 길이는 1 이상 20 이하입니다.같은 전화번호가 중복해서 들어있지 않습니다.입출력 예제 phone_bookre..
프로그래머스 - 해시/완주하지 못한 선수/C++ 문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. 입출력 예 participant completion return ["leo", "kik..
자료구조- 자료구조 종류를 알아보자 자료구조 종류는 아래와 같다 하나씩 살펴보는 시간을 가지도록 하자 교수님... 왜 더 중요하다고 알려주시지 않으셨나요 ** 나무위키와 파이썬 알고리즘 인터뷰를 참고 하였다 ** 1. 단순 구조 우리가 흔히 말하는 데이터 타입 또는 자료형이 여기에 해당된다 나는 Python 같이 자료형에 유연한 언어를 사용할 때 가장 적응 안되는게 자료형이었다 C나 C++은 자료형에 엄하다 자료형의 종류는 링크를 통해 보면 좋을 것 같다 자료형 범위나 크기 같은 상세 부분은 다른 게시물로 정리하겠다 2. 선형구조 선형구조는 위에 그림에서 본 것처럼 리스트, 스택, 큐, 덱 등으로 구성된다 그림에는 없지만 배열도 포함됨 ㅇㅇ 리스트는 선형 리스트(Linear List)와 연결 리스트 (Linked List)가 있다 선형 구..
STRUCT와 UNION을 알아보자 STUCT(구조체)와 UNION(공용체)은 데이터를 묶음으로 사용하는 자료구조다 정의 방법도 비슷하고 사용 이유도 같지만, 둘의 차이점은 메모리 적재 방식이다 메모리에 어떻게 쌓이길래 다른지와 사용 방법에 대해 간단히 정리하겠다 ** 메모리 묶음 타입 ** C - STRUCT와 UNION 제공 C++ - Class, STRUCT, UNION 제공 1. STRUCT와 UNION 사용 방법 (1) STRUCT (구조체) 사용 struct라는 단어에 생소해할 필요는 없다 int, char형 등의 데이터 형과 결국에는 같다 ㅇㅇ STRUCT의 특징 - 데이터를 다채롭게 표현할 수 있다 - 데이터형의 역할이다 - 구조체 이름 지을 때는 C 명명 규칙 사용하면 좋다 - 구조체 확장 개념 → Class (C++에서)..
UDP를 알아보자 오늘은 UDP에 대해서 정리해보려고 한다 TCP를 좋아하는 나에게 UDP를 새로 만들어야하는 일이 생겨서 UDP는 너무 옛날에 봐서 가물가물해짐 가볍게 리마인드하고 가보자잇 대학교 때 이걸로 네트워크 수업 들었었는데 교수님 말씀이 다 옳으셨다... 1. UDP 란? TCP ( Transmission Control Protocol ) - OSI 7계층에서 전송층 (4번째 계층)에 해당 - 전송을 제어하는 프로토콜 - 각 peer 간 신뢰적인 연결 지향성 서비스 제공 - 신뢰성 (연속X) UDP (User Datagram Protocol) - 얘도 OSI 7계층에서 전송층에 해당됨 - 사용자의 Datagram을 전송하는 프로토콜 - 신뢰성이 낮은 프로토콜 - 연속성 TCP와 UDP 모두 상대방에게 자신의 메..
C++ 스마트 포인터를 알아보자 - (2) shared_ptr 오늘은 스마트 포인터 중... 두 번째인 shared_ptr에 대해서 알아볼거다 요즘 네이버 블챌 이벤트를 하고 있는데 가운데 정렬로 하니까 사진 첨부하기가 너무 좋았어서 왼쪽정렬파였는데 바꿔 보려고 한다 ^_^ ++ 이전 글 올리고 다음 날 올릴려고 했는데 다른걸 먼저 올렸더니 잊혀질 뻔 했다 1. 스마트 포인터에는 뭐가 있지? 스마트 포인터는 3가지가 있다 1) unique_ptr 2) shared_ptr (오늘할거) 3) weak_ptr 1-1) unique_ptr이 뭐였더라 (링크 첨부 ^^) 첫 번째, unique_ptr은 포인터를 통해 Unique한 소유권을 가지고 unique_ptr 범위를 벗어날 때 해당 개체를 처리하는 스마트 포인터이다 두 번째, make_unique() 또는 new를 사..
OpenSSL docs 정리 (업데이트 예정) OPENSSL_malloc - 메모리 할당, ONENSSL_free와 같이 사용 CRYPTO_num_locks - 최대 처리가능한 mutex 개수 - mutex 관련하여 int 형 상수를 반환, 이만큼을 처리 할 수 있어야함 - OpenSSL-1.0.1j 기준으로 41임 - openssl/crypto/lock.c 소스에서 확인 가능 - 다중 스레드를 사용할 경우 충돌 할 수 있으므로 lock 사용 CRYPTO_THREADID_set_callback - 주어진 lock type과 잠금 해제 여부(mode)로 해당 lock를 관리해줌 - 현재 실행 중인 스레드의 tid 별로 등록해서 관리 함 → CRYPTO_THREADID_set_numeric을 사용한 콜백을 등록 - 콜백 등록 하지 않으면 기본 구현으로 ..