정올 실력키우기 문자열 2604 : 그릇
2604 : 그릇
//코드
#include<iostream>
using namespace std;
int main()
{
//변수 선언
char arr[50] = { 0 }; //배열 50개 선언
int j = 0; //배열에 입력한 문자 개수를 파악하기 위한 변수 j 선언
int result = 10; //결과 값을 출력하기 위한 변수 result 선언 그릇의 크기10을 초기 값으로 설정
//그릇개수 입력
cin >> arr;
//그릇 개수 파악
while (arr[j] != 0) //arr 배열을 0으로 모두 초기화 하였고
{ //문자 입력을 받았을 시 0이 아닌 값이 들어가있으므로
j++; //arr[j] 값이 0이 나올 때까지 반복하여 입력받은 문자의 수를 파악하여
} //j에 저장한다.
//그릇의 높이 측정
for (int i = 0; i < j - 1; i++) //0부터 j-1까지 반복 j-1 번째까지가 그릇의 개수
{
//입력 받은 문자가 ),( 가 이면 측정
if (arr[i] == '(' || arr[i] == ')')
{
//그릇이 포개지는 경우
if (arr[i] == arr[i + 1]) //arr[i] 와 다음 입력 값 arr[i+1] 이 같으면
{
result = result + 5; //그릇이 겹쳐지므로 +5를 해준다.
}
//그릇이 포개지지 않는 경우
else if (arr[i] != arr[i + 1]) //arr[i] 와 다음 입력 값 arr[i+1] 이 다르면
{
result = result + 10; //그릇이 겹쳐지지 않으므로 +10을 해준다.
}
}
//입력 받은 문자가 그릇이 아닌 다른 값이면 error 출력
else
{
cout << "error" << '\n';
return 0;
}
}
//최종 그릇의 높이 출력
cout << result << '\n';
}
문제 출처 : http://jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=1865&sca=2030