목록분류 전체보기 (231)
Knowledge Map
[ ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' ] 위의 에러 때문에 얼마나 삽질을 했는지 모르겠다. 혼자 끙끙 거리면서 몇시간을 고생하다가 겨우 풀어서 남겨 놓는다. 일단 처음의 문제는 비밀번호를 설정했다가 잊어버려서 다시 비밀번호를 세팅한 것부터가 시작이었다.그리고 난뒤에 다음날 재접을 해보니 에러가 나서 그냥 별생각 없이 mysql를 삭제하였다. https://gist.github.com/vitorbritto/0555879fe4414d18569d 위의 주소를 참고해서 삭제를 진행했다.그리고 나서 다시 brew install mysql를 실행했고 mysql.server start를 했더니..
문제 1 X 1 사이즈의 블럭을 보드를 보고 쌓는다. 보드는 H X W 이며 H는 높이, W는 너비이다.// 예를 들어 3X3 보드가 있다면 아래와 같이 한다. 1 3 4 2 2 3 1 2 4 보드위에 적힌 숫자를 보고 그만큼의 블럭을 쌓는 것이다.1 X 1 X 1 일 경우에 표면적은 면적 1짜리가 6면이므로 6이다. 각각의 블럭들은 1 X 1 블럭으로 할 경우 좌표 (i, j) 로 나타낼수 있다. 각 블록은 Aij로 나타낼 수 있다. 좀더 자세한 문제내용은 위의 pdf를 참고하면 된다.조건1 {temp += Math.abs(p-a); return a;},0); temp += one[one.length-1]; result += temp; result -= one.reduce( (p,a,i) => p + ..
문제 [링크] 소문자 a ~ z 는 각각 1 ~ 26까지 대응한다.동일한 연속된 알파벳은 각 숫자값이 누적해서 계산될수 있다.예를 들어 abccddde 이라고 한다면 아래와 같이 1, 2, 3, 4, 5, 6, 8, 12 라는 숫자가 각각 적용되는 것이다. a 1 b 2 c 3 cc 3+3 = 6 d 4 dd 4+4 = 8 ddd 4+4+4 = 12 e 5 입력은 abccddde613125910 이라고 입력된다. 제일 위에는 문자, 그 아래 숫자는 총 입력되는 숫자를 의미한다. (위에서는 자기 제외하고 6개 숫자가 입력된다는 의미)다.) 그리고 그밑의 1, 3, 12, 5, 9, 10 인데 여기서 9, 10은 적용되지 않는다. 적용되는건 Yes, 아닌건 No로 반환한다.따라서 위의 입력이 되면 아래와 같..
예전에 삭제 했던 윈도우 bash를 다시 세팅하고 git push를 해보았더니 다음과 같은 메세지가 떴다. push.default를 설정하지 않아서 표시되는 메세지이다.여기서 push.default 옵션은 2가지가 있다. simple : 현재 작업중인 브랜치만 push 한다.matching : local과 remote 브랜치명이 같은 모든 브랜치를 push 한다. 두개는 서로 다른 특징을 가지고 있으며 깃 2.0부터는 simple 동작이 기본값이라 되어 있지만 설정하라고나온다.그러니 위에 나온 대로 git config --global push.default simple 이라고 입력하면 된다. 만약 matching을 하고 싶다면 simple 자리에 matching 이라고 입력한다. 출처 : http://d..
문제 [여기]주어진 문자열에 대해서 'hackerrank' 문자의 알파벳이 들어있는지를 확인하면 된다. 단, h, a, c, k, e, r, r, a, n, k 각 문자는 자신보다 앞에 있는 문자보다 더 먼저 나올수 없다. 즉 harankcker 이렇게 되면 없다고 봐야 한다. 순차적으로 각 알파벳이 주어진 문자열에 존재하는지를 확인하면 되는 문제이다. 즉 'haackkerrank' 이렇게 되면 맞는것, 'hackkkerankk' 이러면 r이 하나 부족하기 때문에 아닌게 되는 것이다. 맞으면 'YES' 를, 아니면 'NO' 를 반환하면 된다. 풀이const a = str => { const txt = 'hackerrank'; let j = 0, cnt = 0; for(let i = 0; i
문제 [여기]중복된 문자열을 2개씩 지우고 가장 줄여진 문자열을 반환하는 함수를 만드는 문제이다. 예를 들면 문자열 aaabccddd 가 있을 경우 abccddd => abddd => abd 이런식으로 만들면 된다. 삭제되는 문자열의 순서는 상관없다.즉 aabcc가 있다면 aab, bcc 둘다 상관없다. 또한 bddb의 경우 bddb => bb => "" 가 된다. 만약 문자열이 없다면 Empty String을 반환하면 된다. 풀이// 실행 함수const super_reduced_string = s => A(s) || 'Empty String'; // 문자열 체크 및 삭제해주는 함수const A = str => { for(let i = 1; i
문제는 영어로 되어 있는데 내맘대로 해석을 했다. 원문은 [여기] 참조하면 된다.문제a라는 배열의 최소공배수를 가지고 b라는 배열의 최소값에 이르기 까지 총 개수가 몇개인지 구하시오.예를 들어서 a = [2, 4] 이고 b = [8, 16, 24] 이면 값은 2가 되는데 a 배열의 최소공배수는 4이고 b의 최소값이 8까지는 4, 8 이기 때문에 총 값이 2이다.풀이 // getTotalX( [2,4], [8, 16, 24] ); 이렇게 동작시키는 함수const getTotalX =(a, b) => calculateCommonDenominator(LCM(a), b); // a의 최소공배수(lcm)를 가지고 arr의 최소값까지의 갯수를 구한다.const calculateCommonDenominator = (..
테스트 코드는 다음과 같다. http://jsben.ch/oApXB var a = [[1,2,3,4],[5,6,7,8],[11,12,13,14],[15,16,17,18]]var b = [[21,22,23,24],[35,36,37,38],[41,42,43,44],[45,46,47,48]]cs /**************************************** case 1 ****************************************/var r = [[],[],[],[]];r[0][0] = a[0][0] * b[0][0] + a[0][1] * b[1][0] + a[0][2] * b[2][0] + a[0][3] * b[3][0];r[0][1] = a[0][0] * b[0][1] + a[0][..
달팽이 모양으로 배열을 만들고 그것을 1차원 배열로 반환하는 문제이다. 이것을[[1,2,3],[8,9,4],[7,6,5]] 이런식으로 바꾸는 것이다.[1,2,3,4,5,6,7,8,9] 1234567891011121314151617function snail(array) { if(array.length 0) { switch(check) { case 0: result.push(...array.shift()); break; case 1: for(var i = 0; i -1; i--) result.push(array[i].shift()); break; } check = check > 3 ? 0 : check+1; } return result;}Colored by Color Scriptercs
https://www.codewars.com/kata/two-arrays-zero-rows-and-zero-columns 자세한 문제 및 테스트는 위의 주소에 가서 하면 된다. 문제 자체는 단순하다. 2개의 2차원 배열을 주고 그 배열의 합의 결과로 나오는 배열에서 내부 값이 전부 0인 행과 열의 갯수을 구하면 된다. 처음에는 별생각 없이 2개의 배열의 합으로 나오는 배열을 하나 만든 다음에 거기서 0을 체크하는 방식으로 했다. 그렇게 만들어서 테스트를 했더니... 너무 느린 코드라고 피드백이 왔다. 그래서 체크 항목을 거의 없다 시피해서 했는데도 느리다고 나왔다. 결국 두 배열의 합으로 만들어지는 배열과 관련된 로직이 느리다는 이야기였다. 두 배열의 합으로 만들어지는 배열 생성로직을 삭제하고, 두 배열..