Problem:
Score : 300 points

Problem Statement

There are N stones arranged in a row. Every stone is painted white or black.
A string S represents the color of the stones. The i-th stone from the left is white if the i-th character of S is ., and the stone is black if the character is #.

Takahashi wants to change the colors of some stones to black or white so that there will be no white stone immediately to the right of a black stone.
Find the minimum number of stones that needs to be recolored.

Constraints

1 \leq N \leq 2\times 10^5

S is a string of length N consisting of . and #.

Input

Input is given from Standard Input in the following format:

N
S

Output

Print the minimum number of stones that needs to be recolored.

Sample Input 1

3
#.#

Sample Output 1

1

It is enough to change the color of the first stone to white.

Sample Input 2

5
#.##.

Sample Output 2

2

Sample Input 3

9
.........

Sample Output 3

0

Solution in PHP7 (7.0.15) (judge verdict: Accepted)

<?php

fscanf(STDIN, "%d", $N);
fscanf(STDIN, "%s", $S);
$ch = str_split($S);
$total_w = 0;
$total_b = 0;
$arr = [];
$min = 200100;
$now;
for ($i=0; $i < $N; $i++) { 

	$now = $ch[$i];
	if ($now == '.') {
		$total_w++;
	}else{
		$total_b++;
	}
	$arr[$i][0]=$total_w;
	$arr[$i][1]=$total_b;
}

for ($j=0; $j < $N; $j++) { 
	$cal = $total_w - $arr[$j][0] + $arr[$j][1];
	if ($min > $cal) {
		$min = $cal;
	}
}

$ans = min($min, $total_w, $total_b);
printf("%d", $ans);