Algorithm π§π»π»/λ°±μ€(BOJ)
[λ°±μ€,c++] 1254λ² - ν°λ¦°λ둬 λ§λ€κΈ°
dkswnkk
2022. 3. 26. 23:09
λ¬Έμ
1254λ²: ν°λ¦°λ둬 λ§λ€κΈ°
λνΈμ κ·μμ΄λ 212νΈμμ λ¬Έμμ΄μ λν΄ κ³΅λΆνκ³ μλ€. κ·μμ΄λ ν°λ¦°λ둬μ μμ²λκ² μ’μνλ€. ν°λ¦°λ둬μ΄λ μμμλΆν° μ½μΌλ λ€μμλΆν° μ½μΌλ κ°κ² μ½νλ λ¬Έμμ΄μ λ§νλ€. λνΈλ
www.acmicpc.net
μ½λ
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
bool isPalindrom(string inp){
string temp = inp;
reverse(inp.begin(), inp.end());
if(temp==inp) return true;
return false;
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
string s; cin>>s;
int ans = 1e9;
string temp = s;
reverse(temp.begin(),temp.end());
if(s==temp){
cout<<s.length();
return 0;
}
for(int i=0; i<s.length(); i++){
string temp = s.substr(i,s.length());
if(isPalindrom(temp)){
int len = s.length()-temp.length();
ans = min(ans, len);
}
}
if(ans==1e9) cout<<s.length()*2;
cout<<ans+s.length();
}
νμ΄
λ¬Έμ ꡬν λ°©λ²μ μλμ κ°μ΅λλ€.
- νμ¬ λ¬Έμκ° ν λ¦°λ둬μ΄λΌλ©΄ νμ¬ λ¬Έμμ κΈΈμ΄λ₯Ό λ°λ‘ μΆλ ₯ν©λλ€.
- νμ¬ λ¬Έμκ° ν λ¦°λλ‘¬μ΄ μλλΌλ©΄ νμ¬ λ¬Έμλ₯Ό μͺΌκ°°μ λ μ‘΄μ¬νλ ν λ¦°λ둬μ μ°Ύμ΅λλ€.
- νμ¬ λ¬Έμμμ ν λ¦°λ둬μ λΉΌκ³ λ¨μ λ¬Έμλ₯Ό λ€μ§μ΄μ λΆμ¬μ£Όλ©΄ ν λ¦°λλ‘¬μ΄ λ§λ€μ΄μ§λλ€.
2λ²κ³Ό 3λ²μ λν΄μ λ μμΈν μμλ³΄κ² μ΅λλ€. μ μΆλ ₯ "acaa"κ° μλ€κ³ κ°μ ν΄ λ³΄κ² μ΅λλ€. νμ¬ μ΄ λ¬Έμ μμμ μ‘΄μ¬νλ ν λ¦°λ둬μ "aca"μ "aa"μ λλ€.
- "aca"μΌ λλ "acaa"μμ "aca"λ₯Ό μ μΈν "a"λ₯Ό λ€μ§μ΄μ λΆμ¬μ£Όλ©΄ "aacaa"λ‘ ν λ¦°λλ‘¬μ΄ μμ±λ©λλ€.
- "aa"μΌ λλ "acaa"μμ "aa"λ₯Ό μ μΈν "ac"λ₯Ό λ€μ§μ΄μ λΆμ¬μ£Όλ©΄ "acaaca"λ‘ ν λ¦°λλ‘¬μ΄ μμ±λ©λλ€.
λ¬Έμ μμλ κ°μ₯ μ§§μ ν λ¦°λ둬μ μΆλ ₯νλΌκ³ νκΈ° λλ¬Έμ "aacaa"μ κΈΈμ΄μΈ 5λ₯Ό μΆλ ₯νλ©΄ λ©λλ€.