수 찾기

NJW·2022년 3월 24일
0

코테

목록 보기
101/170

들어가는 말

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);
		}
	}
    ~~~
profile
https://jiwonna52.tistory.com/

0개의 댓글