Browse Source

[2015][c][Day_1] Adding Solution for Part 2

Vinicius Teshima 1 year ago
parent
commit
0b9968e5f8
1 changed files with 23 additions and 4 deletions
  1. 23 4
      2015/c/Day_1/main.c

+ 23 - 4
2015/c/Day_1/main.c

@@ -28,7 +28,7 @@ main(int argc, char *argv[])
 	if ( argc == 1 ) {
 	if ( argc == 1 ) {
 		char *cstr = raw_input;
 		char *cstr = raw_input;
 
 
-loop:
+loop_p1:
 		switch ( *(cstr++) ) {
 		switch ( *(cstr++) ) {
 		case '\0':
 		case '\0':
 			goto exit_loop;
 			goto exit_loop;
@@ -39,12 +39,31 @@ loop:
 			--res;
 			--res;
 			break;
 			break;
 		}
 		}
-		goto loop;
-exit_loop:
-		;
+		goto loop_p1;
 	} else {
 	} else {
+		size_t i = 0;
+		char *cstr = raw_input;
+
+loop_p2:
+		switch ( *(cstr + i) ) {
+		case '\0':
+			goto exit_loop;
+		case '(':
+			++res;
+			break;
+		case ')':
+			--res;
+			if ( res < 0 ) {
+				res = ((long) i) + 1;
+				goto exit_loop;
+			}
+			break;
+		}
+		++i;
+		goto loop_p2;
 	}
 	}
 
 
+exit_loop:
 	printf("Result: %ld\n", res);
 	printf("Result: %ld\n", res);
 
 
 	free(raw_input);
 	free(raw_input);