수 찾기
들어가는 말
A1에 있는 숫자가 A2에 있다면 1을 없다면 0을 반환하는 문제다.
코드 설명
총 두 가지 방법으로 풀 수 있는데, 하나는 반복문이고 또 하나는 해시다. 먼저 반복문으로 풀려면 A1에 숫자를 하나 가지고 A2의 숫자와 비교를 할 때 만일 같은 숫자가 있다면 flag를 true로 만든다. 그리고 flag가 ture이면 1을 삽입하고 아니면 0을 삽입한다.
해싱은 A1의 값을 map인 m(unordered로 해줘야 한다)의 key에 넣어주고 value를 전부 0으로 맞춰준다. 다음 A2에 맞는 값이 있는지 비교하면서 만일 있다면 1로 value를 바꿔준다.
코드
/*해시*/
for (auto mm : A1) {
m[mm] = 0;
}
for (int i = 0; i < 5; i++) {
if (m.find(A2[i]) != m.end()) {
m[A2[i]] = 1;
}
}
/*for*/
for (int i = 0; i < 5; i++) {
bool flag = false;
for (int j = 0; j < 5; j++) {
if (A1[i] == A2[j]) {
flag = true;
break;
}
}
if (flag == true) {
v.push_back(1);
}
else {
v.push_back(0);
}
}
~~~
Author And Source
이 문제에 관하여(수 찾기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jy1999/수-찾기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)