https://www.acmicpc.net/problem/1544
1544๋ฒ: ์ฌ์ดํด ๋จ์ด
์ฌ์ดํด ๋จ์ด๋ ์ด๋ค ๋จ์ด๋ฅผ ์ํ ๋ชจ์์ผ๋ก ์ฐจ๋ก๋๋ก ์ด ๊ฒ์ด๋ค. ๋ฐ๋ผ์, ์ด๋ค ๋จ์ด๋ฅผ ์ด๋ ๊ฒ ์ด ํ์ ์์์ ๋จ์ด๋ฅผ ๊ณ ๋ฅธ๋ค. ๊ทธ ํ์ ์๊ณ๋ฐฉํฅ์ผ๋ก ์ฐจ๋ก๋๋ก ์ฝ์ผ๋ฉด ๊ทธ ๊ฒ์ด ๋จ์ด๊ฐ ๋๋ค. ๋ง์ฝ์
www.acmicpc.net
๋ฌธ์
์ฌ์ดํด ๋จ์ด๋ ์ด๋ค ๋จ์ด๋ฅผ ์ํ ๋ชจ์์ผ๋ก ์ฐจ๋ก๋๋ก ์ด ๊ฒ์ด๋ค. ๋ฐ๋ผ์, ์ด๋ค ๋จ์ด๋ฅผ ์ด๋ ๊ฒ ์ด ํ์ ์์์ ๋จ์ด๋ฅผ ๊ณ ๋ฅธ๋ค. ๊ทธ ํ์ ์๊ณ๋ฐฉํฅ์ผ๋ก ์ฐจ๋ก๋๋ก ์ฝ์ผ๋ฉด ๊ทธ ๊ฒ์ด ๋จ์ด๊ฐ ๋๋ค. ๋ง์ฝ์ ๋จ์ด A์ ๋จ์ด B๊ฐ ์์ ๋, ๋จ์ด B๋ฅผ ์ํ์ผ๋ก ์จ์, ๋จ์ด A์ ๊ฐ์ด ์ฝ์ ์ ์์ผ๋ฉด, ๋ ๋จ์ด๋ ๊ฐ์ ๋จ์ด์ด๋ค. ๋ฐ๋ผ์, picture์ turepic์ ๊ฐ์ ๋จ์ด๋ค.
N๊ฐ์ ๋จ์ด๊ฐ ์ฃผ์ด์ก์ ๋, ์๋ก ๋ค๋ฅธ ๋จ์ด๊ฐ ์ด ๋ช ๊ฐ์ธ์ง ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ๋จ์ด์ ๊ฐ์ N์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ ๋จ์ด๊ฐ ํ ์ค์ ํ๋์ฉ ์ฃผ์ด์ง๋ค. ๋จ์ด๋ ์์ด ์๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์๋ค. N์ 50๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ฉฐ, ๋จ์ด์ ๊ธธ์ด๋ ์ต๋ 50์ด๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ์๋ก ๋ค๋ฅธ ๋จ์ด๊ฐ ๋ช ๊ฐ์ธ์ง ์ถ๋ ฅํ๋ค.
ํ์ด
// Authored by : seondal
// Co-authored by : -
// #include <bits/stdc++.h>
#include <iostream>
#include <vector>
#include <string.h>
using namespace std;
vector<string> v;
// s1 ๊ณผ s2๊ฐ ๊ฐ์ ์ฌ์ดํด ๋จ์ด์ธ์ง ํ๋ณํ๋ ํจ์
bool cycleWord(string s1, string s2) {
for(int k=0; k<s1.size(); k++) {
if(strcmp(s1.c_str(), s2.c_str()) == 0)
return true;
s1 += s1[0];
s1.erase(0,1);
}
return false;
}
// ๋ฌธ์์ด ๋ฒกํฐ ๋ด์ i๋ฒ์งธ ๋ฌธ์์ด๊ณผ ๊ฐ์ ์ฌ์ดํด๋จ์ด๊ฐ ์๋์ง ํ๋ณํ๋ ํจ์
bool isThereSame(int i) {
for(int j=i+1; j<v.size(); j++) {
if(cycleWord(v[i], v[j]))
return true;
}
return false;
}
// ์๋ก ๋จ์ด์ ๊ฐ์ ์นด์ดํธ
int solution(int n) {
int ans=0;
for(int i=0; i<n; i++) {
if(!isThereSame(i))
ans++;
}
return ans;
}
int main() {
int n;
cin >> n;
v.assign(n,"");
for(int i=0; i<n; i++) {
cin >> v[i];
}
cout << solution(n);
return 0;
}
/*
*/
'๐๏ธ PS (BOJ) > Bruteforce' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ][C++] ๋ฐฑ์ค 2309๋ฒ: ์ผ๊ณฑ ๋์์ด (0) | 2023.01.19 |
---|---|
[BOJ S2][C++] ๋ฐฑ์ค 14620๋ฒ: ๊ฝ๊ธธ (0) | 2022.09.24 |
[BOJ][C++] ๋ฐฑ์ค 14889๋ฒ: ์คํํธ์ ๋งํฌ (0) | 2022.09.17 |
[BOJ][C++] ๋ฐฑ์ค 1436๋ฒ : ์ํ๊ฐ๋ ์ (0) | 2022.09.17 |
[BOJ][C++] ๋ฐฑ์ค 2231๋ฒ : ๋ถํดํฉ (0) | 2022.09.17 |