- DP
- golang
- LCs
- js
- μ¬κ·
- Union-Find
- go
- λμ νλ‘κ·Έλλ°
- μμ½λ
- μ΄λΆνμ
- λ°±μλ ν리μ¨λ³΄λ©
- μν°λ
- λ€μ΅μ€νΈλΌ
- DFS
- ν리μ¨λ³΄λ©
- κ°μ₯κ°κΉμ΄κ³΅ν΅μ‘°μ
- μΉ΄μΉ΄μ€2021
- νΈλ¦¬
- μΉ΄μΉ΄μ€ μ½ν
- λΉνΈλ§μ€νΉ
- μ¬λΌμ΄λ© μλμ°
- νλ‘κ·Έλλ¨Έμ€
- C++
- nestjs
- Python
- λ°±μ€
- λΉνΈλ§΅
- μΉλ¦°μ΄
- BFS
- μκ³ λ¦¬μ¦
- Today
- Total
Hello Ocean! πΌ
[νλ‘κ·Έλλ¨Έμ€/C++] μ κ· μμ΄λ μΆμ² λ³Έλ¬Έ
λ¬Έμ μ€λͺ
μλ‘ κ°μ
νλ μ μ λ€μ΄ μΉ΄μΉ΄μ€ μμ΄λ κ·μΉμ λ§μ§ μλ μμ΄λλ₯Ό μ
λ ₯νμ λ, μ
λ ₯λ μμ΄λμ μ μ¬νλ©΄μ κ·μΉμ λ§λ μμ΄λλ₯Ό μΆμ²ν΄μ£Όλ νλ‘κ·Έλ¨μ κ°λ°νλ κ²μ
λλ€.
λ€μμ μΉ΄μΉ΄μ€ μμ΄λμ κ·μΉμ
λλ€.
- μμ΄λμ κΈΈμ΄λ 3μ μ΄μ 15μ μ΄νμ¬μΌ ν©λλ€.
- μμ΄λλ μνλ²³ μλ¬Έμ, μ«μ, λΉΌκΈ°(-), λ°μ€(_), λ§μΉ¨ν(.) λ¬Έμλ§ μ¬μ©ν μ μμ΅λλ€.
- λ¨, λ§μΉ¨ν(.)λ μ²μκ³Ό λμ μ¬μ©ν μ μμΌλ©° λν μ°μμΌλ‘ μ¬μ©ν μ μμ΅λλ€.
λ€μ€λ λ€μκ³Ό κ°μ΄ 7λ¨κ³μ μμ°¨μ μΈ μ²λ¦¬ κ³Όμ μ ν΅ν΄ μ κ· μ μ κ° μ
λ ₯ν μμ΄λκ° μΉ΄μΉ΄μ€ μμ΄λ κ·μΉμ λ§λ μ§ κ²μ¬νκ³ κ·μΉμ λ§μ§ μμ κ²½μ° κ·μΉμ λ§λ μλ‘μ΄ μμ΄λλ₯Ό μΆμ²ν΄ μ£Όλ €κ³ ν©λλ€.
μ κ· μ μ κ° μ
λ ₯ν μμ΄λκ° new_id λΌκ³ νλ€λ©΄,
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μ΄ λ λκΉμ§ λ°λ³΅ν΄μ λμ λΆμ
λλ€.
[λ¬Έμ ]
μ κ· μ μ κ° μ λ ₯ν μμ΄λλ₯Ό λνλ΄λ new_idκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, λ€μ€κ° μ€κ³ν 7λ¨κ³μ μ²λ¦¬ κ³Όμ μ κ±°μΉ νμ μΆμ² μμ΄λλ₯Ό return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄ μ£ΌμΈμ.
[μ νμ¬ν]
new_idλ κΈΈμ΄ 1 μ΄μ 1,000 μ΄νμΈ λ¬Έμμ΄μ
λλ€.
new_idλ μνλ²³ λλ¬Έμ, μνλ²³ μλ¬Έμ, μ«μ, νΉμλ¬Έμλ‘ κ΅¬μ±λμ΄ μμ΅λλ€.
new_idμ λνλ μ μλ νΉμλ¬Έμλ -_.~!@#$%^&*()=+[{]}:?,<>/ λ‘ νμ λ©λλ€.
[μ μΆλ ₯ μ]
no | new_id | result |
μ1 | "...!@BaT#*..y.abcdefghijklm" | "bat.y.abcdefghi" |
μ2 | "z-+.^." | "z--" |
μ3 | "=.=" | "aaa" |
μ4 | "123_.def" | "123_.def" |
μ5 | "abcdefghijklmn.p" | "abcdefghijklmn" |
μ μΆλ ₯ μ #1
new_id = "...!@BaT#*..y.abcdefghijklm" μΌ λ, μμ λ¨κ³λ₯Ό μ μ©νλ©΄
1λ¨κ³ "...!@BaT#*..y.abcdefghijklm" → "...!@bat#*..y.abcdefghijklm"
2λ¨κ³ "...!@bat#*..y.abcdefghijklm" → "...bat..y.abcdefghijklm"
3λ¨κ³ "...bat..y.abcdefghijklm" → ".bat.y.abcdefghijklm"
4λ¨κ³ ".bat.y.abcdefghijklm" → "bat.y.abcdefghijklm"
5λ¨κ³ λ³νκ° μμ΅λλ€.
6λ¨κ³ "bat.y.abcdefghijklm" → "bat.y.abcdefghi"
7λ¨κ³ "bat.y.abcdefghi" → "bat.y.abcdefghi"
μ
μΆλ ₯ μ #2
7λ¨κ³λ₯Ό κ±°μΉλ λμ new_idκ° λ³ννλ κ³Όμ μ μλμ κ°μ΅λλ€.
1λ¨κ³ λ³ν μμ΅λλ€.
2λ¨κ³ "z-+.^." → "z-.."
3λ¨κ³ "z-.." → "z-."
4λ¨κ³ "z-." → "z-"
5λ¨κ³ λ³ν μμ΅λλ€.
6λ¨κ³ λ³ν μμ΅λλ€.
7λ¨κ³ "z-" → "z--"
μ
μΆλ ₯ μ #3
7λ¨κ³λ₯Ό κ±°μΉλ λμ new_idκ° λ³ννλ κ³Όμ μ μλμ κ°μ΅λλ€.
1λ¨κ³ λ³ν μμ΅λλ€.
2λ¨κ³ "=.=" → "."
3λ¨κ³ λ³ν μμ΅λλ€.
4λ¨κ³ "." → "" (new_idκ° λΉ λ¬Έμμ΄μ΄ λμμ΅λλ€.)
5λ¨κ³ "" → "a"
6λ¨κ³ λ³ν μμ΅λλ€.
7λ¨κ³ "a" → "aaa"
μ
μΆλ ₯ μ #4
new_idκ° μ²μλΆν° μΉ΄μΉ΄μ€μ μμ΄λ κ·μΉμ λ§μ΅λλ€.
μ
μΆλ ₯ μ #5
1λ¨κ³ λ³ν μμ΅λλ€.
2λ¨κ³ λ³ν μμ΅λλ€.
3λ¨κ³ λ³ν μμ΅λλ€.
4λ¨κ³ λ³ν μμ΅λλ€.
5λ¨κ³ λ³ν μμ΅λλ€.
6λ¨κ³ "abcdefghijklmn.p" → "abcdefghijklmn." → "abcdefghijklmn"
7λ¨κ³ λ³ν μμ΅λλ€.
νμ΄
μ΄ λ¬Έμ λ νΉλ³ν μκ³ λ¦¬μ¦μ΄λ, μκ°λ³΅μ‘λλ₯Ό μ€μ΄κΈ° μν ν° λ Έλ ₯ μμ΄
μ λ§λ‘ λ¬Έμ κ° μν€λλλ‘ μ£Όμ΄μ§ 7λ¨κ³λ₯Ό μννλ μ½λλ₯Ό μμ±νλ©΄ λλ€.
νλ λ€λ₯Έμ μ,
4λ¨κ³κΉμ§ κ±°μΉ νμ new_id = "" (λΉ λ¬Έμμ΄)μΌ λ,
5λ¨κ³ (λΉ λ¬Έμμ΄μ aλ‘ λ°κΎΈκΈ°) -> 7λ¨κ³ (2κΈμ μ΄νμ΄λ©΄ λ§μ§λ§λ¬Έμ λ°λ³΅ν΄μ 3κΈμ λ§λ€κΈ°)
μ΄λ κ² λ λ¨κ³λ₯Ό κ±°μ³μ returnλμ΄μΌ νλλ°, 5λ¨κ³μμ λ λ¨κ³λ₯Ό ν λ²μ ν΄μ
λΉ λ¬Έμμ΄μΌ κ²½μ° "aaa"λ₯Ό returnνκ² νλ€.
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
bool isValidChar(char c){
bool flag = false;
if (c>='a' && c<='z')
flag = true;
if (c>='0' && c<='9')
flag = true;
if (c == '-' || c == '_' || c =='.')
flag = true;
return flag;
}
string solution(string new_id) {
// 1 λ¨κ³ : λ -> μλ¬Έμ
transform(new_id.begin(), new_id.end(), new_id.begin(), ::tolower);
vector<char> valid_set = {'-','_','.'};
string temp="";
int dot_start;
// 2 λ¨κ³ : μλ¬Έμ, μ«μ, -, _, . μ μΈν λͺ¨λ λ¬Έμ μ κ±°
for (int i=0; i<new_id.size();i++){
if (isValidChar(new_id[i])){
// 3 λ¨κ³ : . μ¬λ¬κ° -> . νκ°
if (temp.back()=='.' && new_id[i]=='.')
continue;
temp.push_back(new_id[i]);
}
}
// 4 λ¨κ³ : 맨μ , 맨λ . μ κ±°
if (temp.front()=='.')
temp = temp.substr(1,temp.size()-1);
if (temp.back()=='.')
temp.pop_back();
// 5 λ¨κ³ : λΉ λ¬Έμμ΄μ΄λ©΄ "a"λ‘ λ°κΎΈκΈ° + 7λ¨κ³ μ μ©
if (temp.empty())
temp = "aaa";
// 6 λ¨κ³ : 16κΈμ μ΄μμ΄λ©΄
if (temp.size() >= 16)
temp = temp.substr(0,15);
if (temp.back()=='.')
temp.pop_back();
// 7 λ¨κ³ : 2κΈμ μ΄νμ΄λ©΄
if (temp.size() <= 2){
for (int i=0;i<=3-temp.size();i++){
temp.push_back(temp.back());
}
}
string answer = "";
return temp;
}
κ²°κ³Ό
'Algorithm' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[νλ‘κ·Έλλ¨Έμ€/C++] ν©μΉ νμ μκΈ (0) | 2021.03.01 |
---|---|
[λ°±μ€/C++] 1175. λ°°λ¬ (0) | 2021.02.26 |
[νλ‘κ·Έλλ¨Έμ€/C++] λ§€μΉ μ μ (0) | 2021.02.03 |
[C++] structμ classμ μ°¨μ΄ (0) | 2021.01.25 |
[νλ‘κ·Έλλ¨Έμ€/C++] κΈΈ μ°ΎκΈ° κ²μ (0) | 2021.01.25 |