인프런 알고리즘테스트 문제

알고리즘 문제 복습(1~10)

풀스택 개발자 2020. 9. 18. 16:01

6번(문자컨트롤 아마존 인터뷰 문제)

#include<iostream>
#include<string.h>
using namespace std;

int main()
{
	int cnt = 0;
	int res = 0;
	char arr[50];
	cin >> arr;
	for (int i = 0; i<strlen(arr); i++)
	{
		if (arr[i] >= 48 && arr[i] <= 57)
		{
			res = res * 10 + (arr[i] - 48);
		}
	}
	cout << res << endl;
	for (int i = 1; i <= res; i++)
	{
		if (res%i == 0)
		{
			cnt++;
		}
	}
	cout << cnt;
}

 

7번

#include<iostream>
#include<string.h>
using namespace std;

int main()
{
	char arr[100];
	cin.getline(arr, 100, '\n');
	for (int i = 0; i < strlen(arr); i++)
	{
		if (arr[i] >= 65 && arr[i] <= 90)
		{
			arr[i] = arr[i] + 32;
		}
	}

	for (int i = 0; i < strlen(arr); i++)
	{
		if (arr[i] >= 97 && arr[i] <= 122)
		{
			cout << arr[i];
		}
		
	}
}

 

8번

#include<iostream>
#include<string.h>
#include<stack>
using namespace std;

int main()
{
	int check = 1;
	stack<char> s;
	char arr[30];
	cin >> arr;
	for (int i = 0; i < strlen(arr); i++)
	{
		if (arr[i] == '(')
		{
			s.push(arr[i]);
		}
		else
		{
			if (s.empty())
			{
				check = 0;
				break;
			}
			else
			{
				s.pop();
			}
		}
	}
	if (s.empty()&&check == 1)
	{
		cout << "YES";
	}
	else if(check==0)
	{
		cout << "NO";
	}
}

스택 사용법 꼭 기억하자.. 그만까먹어라