본문 바로가기

[바킹독 알고리즘] 0x03강:Array

@hyeon.s2022. 12. 23. 20:50

연습문제: O(1)에 배열 안 원소 중 2개의 합이 100인게 존재하는지 확인하기

int func2(int arr[], int len)
{
	int occur[101] = {};
	for (int i = 0; i < len; i++)
	{
		if (occur[100 - arr[i]] == 1)
		{
			return 1;
		}
		occur[arr[i]] = 1;
	}
	return 0;
}

0~100까지 인덱스가 있는 배열을 만듬

내가 입력한 배열을 돌면서 원소에 해당하는 값을 occur 배열 인덱스 값으로 1을 추가함.

만약에 100-해당 원소 가 occur 배열에서 1 값을 가지고 있으면 합 100이 가능한 원소가 존재한다는 뜻

따라서 존재여부로 O(1)에 값을 구할 수 있다.

 

문제 풀이 현황

연습 문제✔ 10808 알파벳 개수 정답 코드
기본 문제✔ 2577 숫자의 개수 정답 코드
기본 문제✔ 1475 방 번호 정답 코드
기본 문제 3273 두 수의 합 정답 코드, 별해 1
기본 문제✔ 10807 개수 세기 정답 코드
기본 문제✔ 13300 방 배정 정답 코드
기본 문제✔ 11328 Strfry 정답 코드
기본 문제✔ 1919 애너그램 만들기 정답 코드
hyeon.s
@hyeon.s :: 개발로그
목차