Notice
Recent Posts
Recent Comments
- Today
- Total
01-27 17:46
Tags
- dp
- ์๋ฃ๊ตฌ์กฐ
- Algorithm
- BFS
- ์กธ์ ์ํ
- ํ๋ก๊ทธ๋๋จธ์ค
- ๋ฌธ๋ฒ
- leetcode
- ๋ฐฑ์ค
- java
- ๋ฒจ๋งํฌ๋
- ๊ทธ๋ฆฌ๋
- MST
- ๋ฐฑ์๋
- ๊ตฌํ
- OOP
- PS
- ์๋ฐ
- Graph
- ์๋ฐ์์ ์
- array
- tree
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- database
- ์์์ ๋ ฌ
- CS
- ๋ค์ต์คํธ๋ผ
- spring
- ์ธํด
- pytorch
Link
Partially Committed
[2021 KAKAO BLIND RECRUITMENT] ์ ๊ท ์์ด๋ ์ถ์ฒ ๋ณธ๋ฌธ
๐ฅ Algorithm || ๋ฌธ์ ํ์ด/PS
[2021 KAKAO BLIND RECRUITMENT] ์ ๊ท ์์ด๋ ์ถ์ฒ
WonderJay 2022. 6. 28. 11:52728x90
๋ฐ์ํ
SMALL
https://programmers.co.kr/learn/courses/30/lessons/72410
string ํด๋์ค์ ์ฌ์ฉ๋ฒ์ ์ ๋ชจ๋ฅด๋ ๋์ ๋ถํ์ํ๊ฒ ์ฝ๋๊ฐ ์ข ๋๋ฌ์์ง ๊ฒ ๊ฐ๋ค.
์๋ฅผ ๋ค์ด, string::substring ์ ์ฐ๋ฉด ๊ฐ๋จํ๋ฐ, string::erase ๋ฅผ ์ด๋ค๋๊ฐ,
string::pop_back() ์ด ์๋ ์ค ๋ชฐ๋๋ค๋๊ฐ..ใ ใ
string ํด๋์ค๋ฅผ ์กฐ๋ง๊ฐ ์ ๋ฆฌํด์ผ๊ฒ ๋ค.
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
/*
1๋จ๊ณ new_id์ ๋ชจ๋ ๋๋ฌธ์๋ฅผ ๋์๋๋ ์๋ฌธ์๋ก ์นํํฉ๋๋ค.
2๋จ๊ณ new_id์์ ์ํ๋ฒณ ์๋ฌธ์, ์ซ์, ๋นผ๊ธฐ(-), ๋ฐ์ค(_), ๋ง์นจํ(.)๋ฅผ ์ ์ธํ ๋ชจ๋ ๋ฌธ์๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
3๋จ๊ณ new_id์์ ๋ง์นจํ(.)๊ฐ 2๋ฒ ์ด์ ์ฐ์๋ ๋ถ๋ถ์ ํ๋์ ๋ง์นจํ(.)๋ก ์นํํฉ๋๋ค.
4๋จ๊ณ new_id์์ ๋ง์นจํ(.)๊ฐ ์ฒ์์ด๋ ๋์ ์์นํ๋ค๋ฉด ์ ๊ฑฐํฉ๋๋ค.
5๋จ๊ณ new_id๊ฐ ๋น ๋ฌธ์์ด์ด๋ผ๋ฉด, new_id์ "a"๋ฅผ ๋์
ํฉ๋๋ค.
6๋จ๊ณ new_id์ ๊ธธ์ด๊ฐ 16์ ์ด์์ด๋ฉด, new_id์ ์ฒซ 15๊ฐ์ ๋ฌธ์๋ฅผ ์ ์ธํ ๋๋จธ์ง ๋ฌธ์๋ค์ ๋ชจ๋ ์ ๊ฑฐํฉ๋๋ค.
๋ง์ฝ ์ ๊ฑฐ ํ ๋ง์นจํ(.)๊ฐ new_id์ ๋์ ์์นํ๋ค๋ฉด ๋์ ์์นํ ๋ง์นจํ(.) ๋ฌธ์๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
7๋จ๊ณ new_id์ ๊ธธ์ด๊ฐ 2์ ์ดํ๋ผ๋ฉด, new_id์ ๋ง์ง๋ง ๋ฌธ์๋ฅผ new_id์ ๊ธธ์ด๊ฐ 3์ด ๋ ๋๊น์ง ๋ฐ๋ณตํด์ ๋์ ๋ถ์
๋๋ค.
*/
bool isdigit(char c)
{
if (c == '0' || c == '1' || c == '2' || c == '3' || c == '4'
|| c == '5' || c == '6' || c == '7' || c == '8' || c == '9')
return true;
else
return false;
}
bool isspecial(char c)
{
string special = "-_.~!@#$%^&*()=+[{]}:?,<>/";
for (auto& ele : special)
{
if (c == ele)
return true;
}
return false;
}
string solution(string new_id) {
string answer = "";
// 1๋จ๊ณ new_id์ ๋ชจ๋ ๋๋ฌธ์๋ฅผ ๋์๋๋ ์๋ฌธ์๋ก ์นํํฉ๋๋ค.
for (auto& ele : new_id) // 1๋จ๊ณ
{
// new_id ๋ฅผ ์ํํ๋ฉฐ
if (isupper(ele))
{
ele = tolower(ele);
}
answer += ele;
}
// 2๋จ๊ณ new_id์์ ์ํ๋ฒณ ์๋ฌธ์, ์ซ์, ๋นผ๊ธฐ(-), ๋ฐ์ค(_), ๋ง์นจํ(.)๋ฅผ ์ ์ธํ ๋ชจ๋ ๋ฌธ์๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
for (string::iterator iter = answer.begin(); iter != answer.end();iter++)
{
if (islower(*iter))
continue;
if (isdigit(*iter))
continue;
if (isspecial(*iter))
{
if (*iter == '-' || *iter == '_' || *iter == '.')
continue;
else
{
answer.erase(iter);
if (answer.empty()) break;
else
iter--;
continue;
}
}
}
// 3๋จ๊ณ
if (!answer.empty())
{
for (string::iterator iter = answer.begin() + 1; iter != answer.end();)
{
if (*(iter - 1) == '.' && *iter == '.')
{
answer.erase(iter);
continue;
}
iter++;
}
// 4๋จ๊ณ
if (answer.front() == '.')
answer.erase(answer.begin());
if (!answer.empty() && answer.back() == '.')
answer.erase(answer.end() - 1);
}
//5๋จ๊ณ
if(answer.empty())
{
answer.append("a");
}
//6๋จ๊ณ
while (answer.length() >= 16)
{
answer.erase(answer.begin() + 15);
}
if (answer.back() == '.')
answer.erase(answer.end()-1);
//7๋จ๊ณ new_id์ ๊ธธ์ด๊ฐ 2์ ์ดํ๋ผ๋ฉด, new_id์ ๋ง์ง๋ง ๋ฌธ์๋ฅผ new_id์ ๊ธธ์ด๊ฐ 3์ด ๋ ๋๊น์ง ๋ฐ๋ณตํด์ ๋์ ๋ถ์
๋๋ค.
if (answer.length() <= 2)
{
char last_ = answer.back();
string last(1, last_);
while (answer.length() != 3)
{
answer.append(last);
}
}
return answer;
}
728x90
๋ฐ์ํ
LIST
'๐ฅ Algorithm || ๋ฌธ์ ํ์ด > PS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ ๊ฒ์ (0) | 2022.07.01 |
---|---|
[2020 ์นด์นด์ค ์ธํด์ญ] ํคํจ๋ ๋๋ฅด๊ธฐ (0) | 2022.06.29 |
[2021 ์นด์นด์ค ์ฑ์ฉ์ฐ๊ณํ ์ธํด์ญ] ์ซ์ ๋ฌธ์์ด๊ณผ ์๋จ์ด (0) | 2022.06.28 |
[2022 KAKAO BLIND RECRUITMENT] ์ ๊ณ ๊ฒฐ๊ณผ๋ฐ๊ธฐ (0) | 2022.06.26 |
[c++]Associate container (0) | 2022.06.25 |
Comments