scriptplay330 알고리즘 문제 풀때 자주 쓰는 것들(?) 생각없이 쓰다보면 헷갈리는 것들 오름차순 / less() / a b string + string -> int 정렬시 s1 + s2 > s2 + s1 / 내림차순 *아스키코드 '0' - 48 ~ '9' - 57 'A' - 65 ~ 'Z' - 90 'a' - 97 ~ 'z' - 122 *문자열 관련 stoi(str) // string > int to_string(int) // int > string s[i] = tolower(s[i]) // 소문자로 s[i] = toupper(s[i]) // 대문자로 isdigit(s[i]) // char 형변환시 int인지 bool반환 string 정렬시 > less(), greater() *소수 구할때(2,3,5,7의 배수.. 2019. 9. 6. 아스키 코드표 2019. 9. 6. 기수 정렬(Radix Sort) 버킷 정렬(bucket sort)라고도 함. 먼저 들어간 숫자들이 먼저 나와야함.(queue) 숫자의 자릿수 값을 비교하는 정렬. LSD(least significant digit) ;가장 낮은 자릿수부터 MSD(most significant digit) ;가장 높은 자릿수부터 시간복잡도 k개의 자릿수를 가지기에 O(kn) 이지만 일반적으로 O(n) 로 표현. #include #define BUCKETS 10 // 10진수 #define DIGITS 4 // 4자릿수 테스트 void radizSort(int arr[], int n) { queue que[BUCKETS]; int factor = 1; for (int d = 0; d 2019. 9. 6. 스킬트리 *스킬트리 선행 스킬 순서를 지켜야 하고 배운 순서가 뒤바뀌면 사용 불가능. 이전 스킬을 배워야 이후 스킬을 배움. 안배우면 사용 불가능. #include #include #include using namespace std; int solution(string skill, vector skill_trees) { int answer = 0; vector learned; for (int i = 0; i 2019. 9. 5. 평균 구하기 *평균 구하기. 정수를 담고 있는 배열 arr의 평균값을 리턴. #include #include #include using namespace std; double solution(vector arr) { double answer = accumulate(arr.begin(), arr.end(), 0); return answer / arr.size(); } Colored by Color Scriptercs 2019. 9. 5. 제일 작은 수 제거하기 *제일 작은 수 제거하기. 가장 작은 수를 제거. 빈 배열이면 -1을 채워 리턴. #include #include #include using namespace std; vector solution(vector arr) { vector answer; vector::iterator iter; iter = min_element(arr.begin(), arr.end()); arr.erase(iter); if(arr.size() == 0) arr.push_back(-1); answer = arr; return answer; } Colored by Color Scriptercs 2019. 9. 5. 이전 1 ··· 43 44 45 46 47 48 49 ··· 55 다음