Algorithm/easy(4)
-
Generate Document - Easy
Generate Document - Easy 이 문제의 경우에는 문자열의 문자를 map에 키값으로 1개씩 count해준다. 개수가 다를 경우에는 return false를 해주며 종료해주면 된다. 위의 예시를 보면 특정 문자를 한개씩 카운트 해주며 확인해보면 각 문자의 등장횟수가 같다. 그래서 output은 true가 나오게 된다. 더보기 #include using namespace std; bool generateDocument(string characters, string document) { map characterMap, documentMap; for(int i = 0; i < characters.size(); i++) characterMap[characters[i]]+=1; for(int i = ..
2021.03.27 -
Run Length Encoding(문자 개수 만큼 압축)
Run Length Encoding 이 문제는 문자열을 하나씩 세리다가 9개나 다른 문자가 나오면 저장을 할 수 있도록 압축을 하는 문제이다. 필자의 경우에는 한개씩 세리다가 이전 문자를 저장하며 9개가 되거나 문자가 달라지면 result 배열에 저장하는 방식으로 문제를 해결했습니다. 더보기 #include using namespace std; string runLengthEncoding(string str) { vector result; char currentChar = str[0]; int count = 1; for(int i = 1; i < str.size(); i++){ if(currentChar != str[i] || count == 9){ result.push_back(count+'0'); r..
2021.03.27 -
카이사르의 암호[Caesar Cipher] - easy
카이사르의 암호[Caesar Cipher] 카이사르 로마제국의 악당? 황제같은 이미지가 있다. 이 사람이 만들었다는 암호이다. 카이사르 암호란 특정 키 값을 각 문자에 더한 값만큼의 문자로 만드는 것이다. 즉 아래의 사진만큼 키 값을 더한 만큼의 문자를 만들어주면 되는 것이다. 여기서 따로 예외 처리를 해주어야 하는 것은 바로 'z' 이상으로 키 값이 넘어갔을 때나 키 값이 알파벳 개수보다 커질 때이다. 더해준 값이 넘어갔을 때다. 1. 알파뱃 개수보다 키 값이 커질 때 key %= 26; key 값에 나머지를 저장함으로써 키 값이 27이면 결국 1만큼 이동해준 것과 같기 때문에 26으로 나머지를 구해준다. 2. 키 값을 더했을 때 z보다 커질 때 newletterCode
2021.03.27 -
팰린드롬인지 체크하기 - easy
팰린드롬이란? 앞뒤가 똑같은 전화번호, 앞뒤가 똑같은 문자열 같은 것이다. 이 문자열이 팰린드롬인지 체크하는 문자열인데 크게 어렵지 않은 알고리즘이니 쉽게 풀어보도록 하자 Reverse 라이브러리 사용하기 더보기 #include using namespace std; bool isPalindrome(string str) { string compareString = str; reverse(compareString.begin(), compareString.end()); return str == compareString; } 우선 가장 쉬운 방법은 reverse라는 알고리즘 라이브러리에서 제공해주는 것을 사용하는 것이다. 그리고 원본의 문자열과 ==을 통해서 비교하여 true, false를 반환할 수 있다. 앞..
2021.03.27