[C++] 프로그래머스 카카오 1차 온라인 코딩테스트 5번 문제 뉴스 클러스터링(난이도: 중)
·
Algorithm/Programmers
#include #include #include #include #include #include #include using namespace std; #include int solution(string str1, string str2) { int answer = 0; float intersections = 0; float unions = 0; transform(str1.begin(), str1.end(), str1.begin(), ::tolower); transform(str2.begin(), str2.end(), str2.begin(), ::tolower); vector str1v; vector str2v; for (int i = 0; i < str1.size() - 1; i++) { if (isalp..
[C++] 프로그래머스 베스트앨범 해시
·
Algorithm/Programmers
#include #include #include #include #include using namespace std; bool genlistSort(pair a, pair b) { return a.second > b.second; } bool playslistSort(pair a, pair b) { //어차피 기본정렬이 오름차순이여서 필요가 없었다. //if(a.first > b.first) //{ // return a.first > b.first; //} //else if(a.first == b.first) //{ // return a.second b.first; } vector solution(vector genres, vector plays..
[C++] 프로그래머스 위장 해시
·
Algorithm/Programmers
#include #include #include using namespace std; int solution(vector clothes) { int answer = 1; map data; for(int i = 0; i < clothes.size(); i++) { data[clothes[i][1]] += 1; } for(auto d : data) { answer *= d.second + 1; } return answer - 1; } 풀이 의상의 종류의 개수을 받는다. 의상의 종류의 개수에서 선택안함을 추가하여 +1씩하고 모두 곱해준다. 모두 선택안함은 없으므로 -1 해준다. 예를 들어 얼굴 / 동그란 안경, 검정 선글라스 상의 / 파란색 티셔츠 인 경우를 생각해보자. 얼굴을 선택안한다는 선택지 상의를 선택..
[C++] 프로그래머스 전화번호 목록 해시
·
Algorithm/Programmers
효율성 3, 4실패 코드 더보기 #include #include #include using namespace std; bool solution(vector phone_book) { bool answer = true; for(int i = 0; i < phone_book.size(); i++) //지정된 전화번호 { int counts = 0; for(int j = 0; j < phone_book.size(); j++) //비교할 전화번호 { if(i == j) continue; //비교할 것이 같으면 패스 for(int k = 0; k < phone_book[i].size(); k++) //지정된 전화번호길이만큼 비교 { if(phone_book[i][k] != phone_book[j][k]) //비교하..
[C++] 프로그래머스 완주하지 못한 선수 해시
·
Algorithm/Programmers
#include #include #include using namespace std; string solution(vector participant, vector completion) { string answer = ""; map partNames; map compNames; for(int i = 0; i < participant.size(); i++) partNames[participant[i]]++; for(int i = 0; i < completion.size(); i++) compNames[completion[i]]++; for(auto iter : compNames) { partNames[iter.first] -= iter.second; } for(auto iter : partNames) { i..
[C++] 프로그래머스 카펫 완전탐색
·
Algorithm/Programmers
#include #include using namespace std; vector solution(int brown, int yellow) { vector answer; for(int i = 6; i = 1이고 2 * 1이 yellow와 같기 때문에 답이므로 answer에 x길이 (i / 2)와 y의 길이 (j / 2 + 2)를 넣어주면 정답이 나온다.