-
BracketsStudy/알고리즘 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