코딩테스트 해커랭크(71)
-
[HackerRank/C++] Closest Numbers
배열 arr가 주어질때, 정렬된 arr에서 두 수의 차이가 최소인 집합을 모두 vector에 저장해 return 한다 vector closestNumbers(vector arr) { vector result; sort(arr.begin(), arr.end()); int diff = INT_MAX; for (size_t i = 1; i arr[i] - arr[i - 1]) { diff = arr[i] - arr[i - 1]; result.clear(); result.push_back(arr[i - 1]); result.push_back(arr[i]); } else if (diff == arr[i] - arr[i - 1]) { result.push_b..
2023.03.14 -
[HackerRank/C++] The Love-Letter Mystery
현재 문자열 s가 좌우 대칭인 문자열과 몇의 차이가 나는지 return 한다 int theLoveLetterMystery(string s) { int result = 0; for (int i = 0; i < s.size() / 2; ++i) result += abs(s[i] - s[s.size() - 1 - i]); return result; } 값을 저장할 result 변수를 선언한다 반복문을 s.size / 2만큼 돌며, 각 문자열의 끝의 절댓값을 구해 result에 더한다 이후 result를 반환한다
2023.03.10 -
[HackerRank/C++] Beautiful Binary String
문자열 b 안에 "010"이 몇번 포함되어 있는지 return 한다 int beautifulBinaryString(string b) { int result = 0; int index = 0; string findString = "010"; while (true) { index = b.find(findString, index); if (index == std::string::npos) break; ++result; index += findString.length(); } return result; } 갯수를 카운트할 result, 검색한 위치를 저장할 index, 찾을 문자열 findString을 선언한다 반복문을 돌며 find 함수로 index부터 findString의 문자가 포함되어 있는지 검사해 값을..
2023.03.10 -
[HackerRank/C++] Funny String
문자열 s를 받을때, s의 각 문자열마다 간격이 좌우 대칭일 경우 "Funny"를 아니라면 "Not Funny"를 return 한다 string funnyString(string s) { vector result; result.reserve(s.size() - 1); for (size_t i = 1; i < s.size(); ++i) result.push_back(abs(s[i] - s[i - 1])); vector result2(result); reverse(result2.begin(), result2.end()); if (result == result2) return "Funny"; else return "Not Funny"; } s의 간격 구해 result에 저장한다 result의 값을 revers..
2023.03.06 -
[HackerRank/C++] Pangrams
문자열 s가 모든 알파벳을 포함하는 판그램인지 판독한다 대소문자는 무시하며 판그램일 경우 pangram, 아닐 경우 not pangram을 return한다 string pangrams(string s) { array alphabet = {}; for (size_t i = 0; i < s.size(); ++i) { if ('a'
2023.03.02 -
[HackerRank/C++] HackerRank in a String!
매개변수로 받은 문자열 s 안에 hackerrank 문자가 포함되어있는지 확인한 후 결과에 따라 YES 혹은 NO를 return한다 s 문자열 안에 순차적으로 포함 되어야 한다 string hackerrankInString(string s) { string result = "hackerrank"; int count = 0; for (size_t i = 0; i < s.size(); ++i) { if (result[count] == s[i]) ++count; if (count == result.size()) return "YES"; } return "NO"; } hackerrank 값을 가지는 문자열을 선언하고 갯수를 셀 int 변수도 하나 선언한다 s를 순회하며 s의 문자열과 hackerrank 문자열이..
2023.03.02 -
[HackerRank/C++] Mars Exploration
SOS로 계속 반복되는 문자열을 받았을때 문자열이 변경되어 s가 되었을때 s는 몇개의 문자가 변경되었는지 return 한다 int marsExploration(string s) { int result = 0; for (size_t i = 0; i < s.size(); ++i) { if (1 == i % 3) { if (s[i] != 'O') ++result; } else if (s[i] != 'S') ++result; } return result; } 문자열 s를 전부 순회하며 i % 3이 1일때, 즉 SOS중 가운데 문자열일때 O와 같은지 비교하며, 나머지는 S과 같은지 비교한다 다를 경우 ++result하고 모든 루프가 끝났을때 해당 값을 return한다
2023.03.02 -
[HackerRank/C++] Caesar Cipher
문자열 s와 정수 k를 받을때, s의 알파벳을 k만큼 더해서 return 한다 string caesarCipher(string s, int k) { k = k % 26; for (int i = 0; i < s.size(); ++i) { if ('a'
2023.03.02