ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Brackets
    Study/알고리즘 2018. 1. 18. 15:25

    생각을 잘못했네 풀고나니 자료구조를 이용해서 풀어야 된다고 그때 생각함..

    -_-;; 




    function Brackets(A){
    	// 바깥쪽 패어 여부를 조사
    	// 중간 패어 조사 시작 인덱스를 리턴 하게끔
    	var checkIndex = 0;
    	for(var i = 0 ; i < A.length -1; i++){
    		var getStartText = A.charAt(i);
    		var getEndText = A.charAt(A.length - (i + 1));
    		var expectedEndText = "";
    		switch (getStartText){
    			case "{":
    				expectedEndText = "}";
    				break;
    			case "(":
    				expectedEndText = ")";
    				break;
    			case "[":
    				expectedEndText = "]";
    				break;
    		}
    
    		//마지막 값이 기대값과 일치하는 경우 일단 검사
    		if(getEndText == expectedEndText){
    			continue;
    		}else{
    			checkIndex = i;
    			break;
    		}
    	}
    
    	console.log(">> checkIndex : " + checkIndex);
    
    	//마지막 값이 기대값과 일치하는 경우 일단 검사
    	for(var i = checkIndex - 1 ; i < A.length - ( checkIndex + 1) ; i+=2){
    		var checkStartText = A[i];
    		var checkEndText 	= A[i+1];
    		var expectedCheckEndText = "";
    
    		switch (checkStartText){
    			case "{":
    				expectedCheckEndText = "}";
    				break;
    			case "(":
    				expectedCheckEndText = ")";
    				break;
    			case "[":
    				expectedCheckEndText = "]";
    				break;
    		}
    
    		console.log("> checkEndText : " + checkEndText);
    		console.log("> expectedCheckEndText : " + expectedCheckEndText);
    
    		if(checkEndText != expectedCheckEndText){
    			return 0;
    		}
    	}
    
    	return 1;
    }
    


    두번째 방법 


    https://app.codility.com/demo/results/trainingH984ZJ-G84/



    function Brackets(S){
    
    	if(S.length == 0){
    		return 1;
    	}
    	var startArray = new Array();
    	for(var i = 0; i < S.length; i++){
    		if(S[i] == "{" || S[i] == "[" || S[i] == "(" ){
    			startArray.push(S[i]);
    		}else{
    			var str = startArray.pop();
    			if(S[i] == "}"){
    				if(str != "{"){
    					return 0;
    				}
    			}
    			if(S[i] == "]"){
    				if(str != "["){
    					return 0;
    				}
    			}
    			if(S[i] == ")"){
    				if(str != "("){
    					return 0;
    				}
    			}
    		}
    	}
    
    	if(startArray.length > 0 ){
    		return 0;
    	}
    	return 1;
    }
    

    'Study > 알고리즘' 카테고리의 다른 글

    fish  (0) 2018.01.19
    NumberOfDiscIntersections  (0) 2018.01.16
    MaxProductOfThree  (0) 2018.01.16
    Distinct  (0) 2018.01.15
    Triangle  (0) 2018.01.15
    MinAvgTwoSlice  (0) 2018.01.15
    GenomicRangeQuery  (0) 2018.01.15
    PassingCars  (0) 2018.01.12
    CountDiv  (0) 2018.01.12
    MaxCounters  (0) 2018.01.12

    댓글

COPYRIGHT 2010 EpoNg. ALL RIGHTS RESERVED.