์ด ๋ฌธ์ ๋ฅผ ์ฝ๊ฒ ํ์ด ๋งํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
i๋ฒ์งธ ์ฌ๋์ 2-์น๊ตฌ๋,
์ผ๋จ ๊ทธ์ ์ง๊ณ ์น๊ตฌ๋ ์ผ๋จ ๋ด 2-์น๊ตฌ๊ณ ,
์ง๊ณ ์น๊ตฌ๊ฐ ์๋ ์น๊ตฌ์ ์น๊ตฌ๋ค๊ณผ ๊ทธ์ ์น๊ตฌ๋ค์ ๋์กฐํด ๊ฒน์ง์ธ์ด ํ๋ช
์ด๋ผ๋ ์์ผ๋ฉด ๊ทธ ์น๊ตฌ๋ ๊ทธ์ 2-์น๊ตฌ๋ค.
๊ฒน์ง์ธ์ด ํ๋ช ์ด๋ผ๋ ์๋ค๋ ๊ฒ์ AND ์ฐ์ฐ์ผ๋ก ์ฒ๋ฆฌํ๊ณ ์ถ์ด์,
์ ๋ ฅ๋ฐ์ ๋ Y๋ฅผ 1๋ก N์ 0์ผ๋ก ์ ๋ ฅ๋ฐ์๋ค.
๋ฐ๋ผ์ ๋ค์๊ณผ ๊ฐ์ด ํ๊ณ ์ ํ๋ค.
i๋ฒ์งธ ํ ์ฌ๋์ 2-์น๊ตฌ์๋
์๊ธฐ ํ์ 1์ ์๋ฅผ ๋ค ๋ํด 2-์น๊ตฌ์์ ํฉํด ๋๊ณ (์ง๊ณ ์น๊ตฌ ์),
์๊ธฐํ์์ 0(N)์ธ ๋ฒ์งธ๋ฅผ j๋ผ๊ณ ํ๋ฉด
jํ์ ์น๊ตฌ์ ์๊ธฐํ์ AND ์ฐ์ฐํ์ฌ ๊ทธ ์ดํฉ์ด 1์ด์์ด๋ฉด (๊ฒน์ง์ธ์ด ์๋ ๊ฑฐ๋๊น) ์๊ธฐ 2-์น๊ตฌ์์ 1์ ๋ํ๋ค.
์ฝ๋๋ ์๋์ ๊ฐ์ด ์์ฑํ๋ค.
#include <iostream>
#include <string>
#include <vector>
#include <numeric>
#include <algorithm>
using namespace std;
int main() {
int N;
cin >> N;
cin.ignore();
vector<string> arr;
string arr2;
for (int i = 0; i < N; i++) {
cin >> arr2;
for (int j = 0; j < N; j++) {
if (arr2[j] == 'Y') {
arr2[j] = 1;
} else if (arr2[j] == 'N') {
arr2[j] = 0;
}
}
arr.push_back(arr2);
}
/*i๋ฒ์งธ ์ฌ๋์ ์น๊ตฌ์๋ฅผ ๊ตฌํด์ ์น๊ตฌ์ ๋ฒกํฐ์ ๋ฃ๊ธฐ*/
vector<int> friends;
for (int i=0; i<N ; i++){
int sum = 0;
sum = accumulate(arr[i].begin(), arr[i].end(), 0); // ์์ ์ ์ง๊ณ ์น๊ตฌ ์์ ํฉ
/*์ง๊ณ ์น๊ตฌ๋ ์๋์ง๋ง ๊ฒน์ง์ธ์ด ์๋ ๊ฒฝ์ฐ ์ฒดํฌ*/
for (int j=0; j<N; j++){
if ((arr[i][j]==0)&(i!=j)){
vector<int> result(N);
/*AND ์ฐ์ฐํ ๋ฐฐ์ด์ด ๊ฒน์ง์ธ์ ์๋๊น ๊ฒน์ง์ธ์ด 1๋ช
์ด๋ผ๋ ์์ผ๋ฉด 2-์น๊ตฌ๋ก ์ธ์ด์ผ ํจ*/
transform(arr[i].begin(), arr[i].end(), arr[j].begin(), result.begin(), [](int a, int b) { return a & b; });
if(accumulate(result.begin(), result.end(), 0) != 0) { sum += 1; }
}
}
friends.push_back(sum);
}
sort(friends.rbegin(),friends.rend());
cout << friends[0] << endl ;
}
์ฝ๋์์
์ด ๋ถ๋ถ์ ์ดํด๋ณด๋ฉด
arr[i]์ begin๋ถํฐ end๊น์ง๋ฅผ, arr[j]์ begin๋ถํฐ์ AND์ฐ์ฐํด์(์๋ ๋์ ํ์ํ์ง ์์๋ ๋๋ค.),
result์ begin๋ถํฐ ์ ์ฅํ๋ค๋ ๋ป์ด๋ค.
์ด๋ AND์ฐ์ฐ์ ํด๋นํ๋ ๋ด์ฉ์ด ๋ค์ [](int a, int b) { return a & b; }์ด๋ค.
์ด๊ฒ์ ๋๋ค ํจ์๋ก transform ํจ์์ ์ดํญ ์ฐ์ฐ์๋ก ์ฌ์ฉ๋๋ค.
์ด ๋๋ค ํจ์๋ ๋ ๊ฐ์ ์ ์ a์ b๋ฅผ ์ธ์๋ก ๋ฐ์์ ๋ ผ๋ฆฌ AND(๋นํธ AND) ์ฐ์ฐ์ธ a & b์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ค.
์์ฒญ ๊ฐ๋จํ๊ฒ ์ง ์ฌ๋๋ค๋ ๋ง์ ๊ฒ ๊ฐ๋ค..
๊ทธ๋ฆฌ๊ณ ํ์ด์ฌ์ผ๋ก ํ๋ฉด ๋ ๊ฐ๋จํ์ ๋ฏ.
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python][AI] pandas, numpy ๊ธฐ์ด ํจ์ ์ ๋ฆฌ (1) | 2023.10.09 |
---|---|
[BOJ] ์ฝ๋ฉ ๋ฌธ์ ํ์ด๋ ๊นํ๋ธ์! (0) | 2023.08.22 |
[BOJ] 3098๋ฒ. ์์ ๋คํธ์ํฌ (C++) (0) | 2023.08.04 |
[BOJ] C++์ฐ์ตํ๊ธฐ! ๋ฐฑ์ค ๋ฌธ์ ์ง (by jihwan0319) (0) | 2023.08.01 |
[C++] ๋ฆฌ์คํธ(list)์ ๋ฒกํฐ(vector)์ ์ฐจ์ด (0) | 2023.07.31 |