level2

#1. 문제 #2. 풀이 1. map 컨테이너 [Basic C++] #38_map, 연관 컨테이너 #1. 개념 1. map [정의] : C++의 STL에서 제공하는 map 컨테이너는 지정된 형식의 키와 데이터 값을 한 쌍으로 레드-블랙 트리 자료구조에 저장하는 연관 컨테이너입니다. [특징] : map 컨테이너는 오직 webddevys.tistory.com Details map 컨테이너는 C++ STL에서 제공하는 연관 컨테이너로, 키와 값을 한 쌍으로 레드-블랙 트리 자료구조에 저장합니다. 2. 우선순위 큐 [자료구조]#7_우선순위 큐 [자료구조]#7_우선순위 큐 우선순위 큐 자료구조에 대해 알아보겠습니다. Overview 개념 구현 참고 #0. 개념 1. 우선순위 큐 정의 : 우선순위 큐(Priorit..
#1. 문제 #2. 풀이 1. DFS [자료구조]#6_그래프 #0. 개념 1. 그래프? [정의] : 그래프는 노드와 간선들의 집합으로 이루어진 비 선형 자료구조입니다. 그래프의 노드들은 간선을 통해 연결되어 일종의 네트워크를 형성합니다. 그래프는 노드와 webddevys.tistory.com [정의] : DFS(깊이 우선 탐색)은 그래프 내 모든 정점을 탐색하는 방법 중 하나입니다. [특징] : DFS는 현재 정점을 기준으로 깊은 탐색을 우선적으로 진행하고, 다음 인접 정점에 대한 깊이 탐색을 진행. [구현] 재귀 호출 스택 2. 두 개의 DFS - 양수에 대한 재귀 DFS, 음수에 대한 재귀 DFS numbers 목록의 첫 번째 정점을 시작으로 양수 값에 대한 DFS와 음수 값에 대한 DFS를 호출합니..
[Programmers 알고리즘, C++]#Level2_가장 큰 수 Programmers 알고리즘 문제 풀이, Level2_가장 큰 수 C++의 algorithm 라이브러리에서 제공하는 sort 함수와 람다 표현식을 활용하는 문제 Overview 문제 풀이 코드 #1, 문제 #2. 풀이 1. sort() [Basic C++] #32-3_STL 정렬 알고리즘 [Basic C++] #32-3_STL 정렬 알고리즘 C++ 개발에서 표준 라이브러리(STL)에 대해 알아보겠습니다. "전문가를 위한 C"의 15 항목, "C++ 표준 라이브러리 살펴보기"에 해당하는 내용입니다. Overview 개념 partiti webddevys.tistory.com [정의] : C++의 algorithm 헤더에서 제공하는 sort..
[Programmers 알고리즘, C++]#Level 2_카펫 Programmers 알고리즘 문제 풀이, Level 2_카펫 순수 수학으로 푸는 문제 #1. 문제 #2. 풀이 1. 갈색 격자와 노란색 격자 최소 가로길이, 최소 세로 길이 : 카펫의 최대 가로 길이는 (갈색 격자 - 2)/2개이며, 최소 세로 길이는 3입니다. 공식 : 2(W+H)-4 = B 식을 통해 Y값을 도출합니다. 갈색 격자와 노란색 격자 : 위 내용들을 통해 가로 길이는 -1로 줄이고, 세로 길이는 +1로 늘리며, 차례대로 Y값을 도출하고, 주어진 Y값과 동일하면, 해당 가로길이와 세로 길이를 결과로 반환합니다. #3. 코드 #include #include using namespace std; // #1. 카페트의 가로 최대 = ..
[Programmers 알고리즘, C++]#Level 2_다음 큰 숫자 Programmers 알고리즘 문제 풀이, Level 2_요격 시스템 정렬 작업을 통해 중복되는 구간을 최대로 설정하는 문제 Overview 문제 풀이 코드 #1. 문제 #2. 풀이 1. 중복이 있는 구간들 찾기 먼저, s ~ e 구간 내 s값과 e값을 제외한 나머지 값들이 겹치는 미사일들을 찾아야 합니다. 주어진 vector 컨테이너를 "e" 값, 즉 개구간의 최대 값을 기준으로 오름차순 정렬합니다. 만약, 한 미사일의 "s" 값이 다른 미사일의 "e"값과 같거나 크다면, 두 미사일은 중복되는 구간이 없다는 의미로 해석할 수 있습니다. 반대로, 한 미사일의 "s"값이 다른 미사일의 "e" 값보다 작다면, 두 미사일은 중복되며 한 번..
[Programmers 알고리즘, C++]#Level 2_이진 변환 반복하기 Programmers 알고리즘 문제 풀이, Level 2_이진 변환 반복하기 이진 변환 알고리즘과 STL 알고리즘을 활용하여 풀이하는 문제입니다. 문제 풀이 #include #include #include using namespace std; bool Pred(char c) { return c == '0'; } vector solution(string s) { vector answer; int delete0Cnt = 0; int decToBinCnt = 0; vector tmpV; while(s != "1") { // 1. 0 제거, for 문을 돌면서 삭제하면 String에 직접적인 변화 for(int i=0; i 이진 변환 ..
[Programmers 알고리즘, C++]#Level 2_JadenCase 문자열 만들기 Programmers 알고리즘 문제 풀이, Level 2_JadenCase 문자열 만들기 cctype 제공 함수를 활용하여 풀이하는 문제입니다. 문제 풀이 /* * #include 제공 함수 주의할 점 : islower(), isdigit(), isupper() 등의 함수는 반환 값이 int입니다. if(islower(str[i]) == true)는 정상적으로 수행되지 않습니다! */ #include #include #include using namespace std; string solution(string s) { string answer = ""; bool changeCheck = true; if (isdigi..
[Programmers 알고리즘, C++]#Level 2_오픈 채팅방 Programmers 알고리즘 문제 풀이, Level2_오픈 채팅방 STL 컨테이너와 String 클래스를 활용하여 풀이하는 문제입니다. 문제 풀이 1. [유저 아이디] + [닉네임] 을 묶어서 기억하기 위해 STL 컨테이너 중 "map"을 활용합니다. [Basic C++] #38_map, 연관 컨테이너 [Basic C++] #38_map, 연관 컨테이너 C++ 개발에서 표준 라이브러리(STL)의 "map"에 대해 알아보겠습니다. "전문가를 위한 C"의 16 항목, "컨테이너와 반복자 이해하기"에 해당하는 내용입니다. map, 연관 컨 webddevys.tistory.com 2. 주요 포인트는 닉네임이 변경되는 시점은 두 가지입니다. ..
[Programmers 알고리즘, C++]#Level 2_문자열 압축 Programmers 알고리즘 문제 풀이, Level2_문자열 압축 String 클래스 활용과 규칙을 찾아 풀이하는 문제입니다. 문제 풀이 1. 최대 압축 단위는 전체 길이의 1/2까지 가능합니다! 2. 압축 단위를 증가시키며(1, 2, 3...N/2) 문자열의 압축 가능 여부를 확인합니다. 3. 각 압축 단위마다 최종적으로 압축된 문자열 길이를 기억해서 비교합니다. 4. 이때, 마지막에 남아 있는 가장 작은 문자열 길이를 반환합니다. 코드 #include #include using namespace std; int solution(string s) { int len = s.size(); int answer = len; int n = ..
Hardii2
'level2' 태그의 글 목록