본문 바로가기
반응형

알고리즘33

[프로그래머스 - 정렬] 파일명 정렬 (for kakao) 📄 [정렬] 파일명 정렬 C++ Source Code #include #include #include #include using namespace std; #define STR_FILE_PAIR pair const string removeZero(string number) { auto end = number.begin(); while (number.end() != end && *end == 48) { end++; } // 문자열 앞에 숫자 0을 제거한다. if (number.begin() != end) { number.erase(number.begin(), end); } return number.empty() ? "0" : number; } const bool isDigit(const char lette.. 2019. 8. 14.
[프로그래머스 - 구현] 압축 (for kakao) 📄 [구현] 압축 C++ Source Code #include #include #include using namespace std; /*LZW 압축은 다음 과정을 거친다. ⓐ 길이가 1인 모든 단어를 포함하도록 사전을 초기화한다. ⓑ 사전에서 현재 입력과 일치하는 가장 긴 문자열 w를 찾는다. ⓒ w에 해당하는 사전의 색인 번호를 출력하고, 입력에서 w를 제거한다. ⓓ 입력에서 처리되지 않은 다음 글자가 남아있다면(c), w+c에 해당하는 단어를 사전에 등록한다. ⓔ 단계 2로 돌아간다. */ #define INT_PAIR pair // ※ CAPTION - 압축 알고리즘이 영문 대문자만 처리한다고 한다. vector solution(string msg) { vector answer; unordered_.. 2019. 8. 13.
[프로그래머스 - 구현] 뉴스 클러스터링 (for kakao) 📄 [구현] 뉴스 클러스터링 C++ Source Code #include #include #include #include #include using namespace std; /*ⓐ 자카드 유사도는 집합 간의 유사도를 검사하는 여러 방법 중의 하나로 알려져 있다. 두 집합 A, B 사이의 자카드 유사도 J(A, B)는 두 집합의 교집합 크기를 두 집합의 합집합 크기로 나눈 값으로 정의된다. */ /*ⓑ 입력으로 들어온 문자열은 두 글자씩 끊어서 다중집합의 원소로 만든다. 이때 영문자로 된 글자 쌍만 유효하고, 기타 공백이나 숫자, 특수 문자가 들어있는 경우는 그 글자 쌍을 버린다. 예를 들어 ab+가 입력으로 들어오면, ab만 다중집합의 원소로 삼고, b+는 버린다. */ const bool checkA.. 2019. 8. 9.
[프로그래머스 - 구현] 캐시 (for kakao) 📄 [구현] 캐시 C++ Source Code #include #include #include #include #include using namespace std; #define INT_PAIR pair #define STR_INT_PAIR pair const bool compare (const STR_INT_PAIR & left, const STR_INT_PAIR & right) { return left.second > right.second; } /* 페이지 교체 알고리즘은 페이징 기법으로 메모리를 관리하는 운영체제에서, 페이지 부재가 발생 하여 새로운 페이지를 할당하기 위해 현재 할당된 페이지 중 어느 것과 교체할지를 결정하는 방법이다. 이 알고리즘이 사용되는 시기는 페이지 부재가 발생해 새로운 페.. 2019. 8. 1.
반응형