본문 바로가기
알고리즘 문제풀이 리뷰

함수 재호출 vs 호출 결과를 변수에 담기(백준 2941번 리뷰)

by seongjko 2023. 9. 18.
728x90

 

	while (str[i])
	{
		if (is_it_croatia_alphabet(str, i))
		{
			i += is_it_croatia_alphabet(str, i);
			cnt++;
		}
		else if (str[i] == '-' || str[i] == '=')
		{
			i++;
		}
		else
		{
			i++;
			cnt++;
		}
	}

이 코드에서는 is_it_croatia_alphabet이라는 함수를 총 두 번 호출하고 있다. chatGPT는 아래와 같이 바꾸면 더 효율적이라고 했다.

	int result;
    
    while (str[i])
	{
    		result = is_it_croatia_alphabet(str, i);
		if (result)
		{
			i += result;
			cnt++;
		}
		else if (str[i] == '-' || str[i] == '=')
		{
			i++;
		}
		else
		{
			i++;
			cnt++;
		}
	}

왜 더 효율적일까?

이것에 대해 알아보려면 일단 함수가 호출될 때 어떤 일이 일어나는지 알아봐야 할 필요가 있을 것 같다.

반응형