[풀이 - Insertion Sort - Part 2] : <Easy / 97.21%>
더보기
void CheckArray(vector<int>& arr, int idx)
{
int value = arr[idx];
//
for(int i = idx - 1; i >= 0; --i)
{
if(arr[i] > value)
{
arr[i+1] = arr[i];
if(i == 0)
arr[i] = value;
}
else
{
arr[i+1] = value;
return;
}
}
}
//
void PrintArray(const vector<int>& arr)
{
for(int i = 0; i < arr.size(); ++i)
cout << arr[i] << " ";
//
cout << endl;
}
//
void insertionSort2(int n, vector<int> arr)
{
for(int i = 1; i < n; ++i)
{
CheckArray(arr, i);
//
PrintArray(arr);
}
}
[풀이 - Correctness and the Loop Invariant] : <Easy / 98.57%>
더보기
void insertionSort(int N, int arr[])
{
int i,j;
int value;
for(i=1;i<N;i++)
{
value=arr[i];
j=i-1;
// change 'j>0' -> 'j>=0'
while(j>=0 && value<arr[j])
{
arr[j+1]=arr[j];
j=j-1;
}
arr[j+1]=value;
}
for(j=0;j<N;j++)
{
printf("%d",arr[j]);
printf(" ");
}
}
[풀이 - Caesar Cipher] : <Easy / 85.99%>
더보기
char encrypt(char c, int k)
{
bool isLower = ('a' <= c && c <= 'z');
bool isUpper = ('A' <= c && c <= 'Z');
//
if( !isLower && !isUpper )
return c;
//
char min, max;
if(isLower)
min = 'a', max = 'z';
else
min = 'A', max = 'Z';
//
int result = c + (k % 26);
if(result > max)
result = (result - (int)max - 1) + (int)min;
//
return result;
}
//
string caesarCipher(string s, int k)
{
for(int i = 0; i < s.size(); ++i)
s[i] = encrypt(s[i], k);
//
return s;
}