[๋ฌธ์ ]
https://www.acmicpc.net/problem/9996
ํ์ผ์ ๊ฐ์์ ํจํด์ด ์ฃผ์ด์ง๋ค.
ํจํด์ a*b ์ด๋ฐ ์์ผ๋ก ์ฃผ์ด์ง๋, *์ ๊ณต๋์ ํฌํจํ ์ฌ๋ฌ ์์ดํ ๋ฌธ์์ด์ด ํฌํจ๋ ์ ์๋ค.
ํ์ผ ์ด๋ฆ์ด ํจํด๊ณผ ์ผ์นํ๋ฉด "DA", ์ผ์นํ์ง ์์ผ๋ฉด "NE" ๋ฅผ ์ถ๋ ฅํ๋ค.
์ฃผ์ํ ์ ์, a*b ์ด๋ฐ ์์ผ๋ก ํจํด์ 1๋ฌธ์๊ฐ ์๋๋ผ ab*bc ์ด๋ฐ ์์ผ๋ก 2๊ธ์, 3๊ธ์... ๊ฐ ์ฌ ์ ์๋ค๋ ๊ฒ.
์์ ์ ๋ ฅ
3
a*d
abcd
anestonestod
facebook
์์ ์ถ๋ ฅ
DA
DA
NE
[ํด๊ฒฐ๋ฐฉ๋ฒ]
1. ํจํด์ ํด๋น๋๋ prefix, suffix ๋ฌธ์์ด์ ์ฐพ๊ธฐ ์ํด * ์ ์์น๋ฅผ ์ฐพ๋๋ค. ๋ฌธ์์ด find ํจ์ ์ฌ์ฉ.
2. *๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฌธ์์ด์ prefix, suffix ๋ก ๋๋๋ค. ๋ฌธ์์ด substr ํจ์ ์ฌ์ฉ.
3. folder ์ด๋ฆ์ผ๋ก ์ฃผ์ด์ง ๋ฌธ์์ด์ ๋งจ ์๊ณผ ๋งจ ๋ค๊ฐ prefix, suffix ์ ์ผ์นํ๋์ง ํ์ธํ๋ค.
4. ์ด ๋, ์ถ๊ฐ ์กฐ๊ฑด์ผ๋ก folder name ์ด prefix + suffix ๊ฐ๋ณด๋ค ํฐ์ง๋ฅผ ํ์ธํด์ค์ผ ํ๋ค. ํ์ธํ์ง ์์์ฑ index +, - ๋ก suffix ๋ฅผ ํ์ธํ๋ค๊ฐ ์๋ฌ๋ฅผ ๋ง์ ์ ์๋ค.
[์ฝ๋]
#include <iostream>
#include <string>
using namespace std;
int main() {
int num;
string pattern, name;
cin >> num;
cin >> pattern;
int starPos = pattern.find('*');
string prefix = pattern.substr(0, starPos);
string suffix = pattern.substr(starPos + 1);
for (int i = 0; i < num; i++) {
cin >> name;
if (name.size() < prefix.size() + suffix.size()) {
cout << "NE\n";
}
else{
if(name.substr(0, prefix.size()) == prefix
&& name.substr(name.size() - suffix.size()) == suffix) cout << "DA\n";
else cout << "NE\n";
}
}
return 0;
}
'๐ Coding Test Study > Algorithm Problem' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C++][Baekjoon][map] 1620 ๋๋์ผ ํฌ์ผ๋ชฌ ๋ง์คํฐ(map/arr ์๊ฐ๋ณต์ก๋, map value๋ก key์ฐพ๊ธฐ) (0) | 2024.04.14 |
---|---|
[C++][Baekjoon][๋ฌธ์์ด] 2559 ์์ด (feat. prefix sum) (0) | 2024.04.13 |
[C++][Baekjoon][๋ฌธ์์ด] 11655๋ฒ ROT13 (0) | 2024.02.17 |
[C++][Baekjoon][๋ฌธ์์ด] 10808๋ฒ ์ํ๋ฒณ ๊ฐ์ (1) | 2024.02.03 |
[C++][Goorm][ํ์] ์นด๋ ๊ตํํ๊ธฐ (0) | 2023.06.11 |