자료구조, 알고리즘 문제 풀이/정올 실력키우기

정올 실력키우기 문자열 2604 : 그릇

재우이 2017. 3. 23. 00:48

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