import java.util.Arrays;

public class SortingUniqueCounter implements UniqueCounter {

    public int uniqueCount(String[] list) {
        assert list != null : "Failed precondition: unique count";
    	
    	Arrays.sort(list);
    	String last = list[0];
    	int count = 0;
    	
    	// assert count is number of unique words in list[0..k]
    	for(int k=1; k < list.length; k++){
    		if (! list[k].equals(last)){
    			last = list[k];
    			count++;
    		}
    	}
    	return count;
    }   
}
