-
백준 2468번 안전 영역 [DFS] :: 마이구미알고리즘 풀이/그래프 2017. 6. 18. 22:48
이번 글은 백준 알고리즘 문제 2468번 "안전 영역" 을 다뤄본다.정올 초등부에서 출제된 문제이다.초등부이지만, 정답률은 30%인 것을 볼 수 있다.DFS, BFS - http://mygumi.tistory.com/102 문제 접근은 DFS 또는 BFS를 활용할 수 있다.기본적인으로 DFS 및 BFS 기본 지식을 가지고 있다면 충분히 풀 수 있다.여기서는 DFS를 통해 문제를 풀어보겠다. 위 그림은 높이가 4와 6의 경우를 나타내고 있다. 흰색 영역의 수를 찾는 문제가 된다.그래프에서는 이 영역을, 연결 요소의 개수라고 볼 수 있다.즉, DFS 탐색이 이루어지는 횟수 중 가장 큰 수가 정답이 된다. 높이를 1부터 100까지 경우 각각 DFS 탐색을 하면 된다. public static void dfs(..
-
Do not use 'new' for side effects :: 마이구미Javascript 2017. 6. 13. 22:00
이번 글은 Linter에서 검출해주는 에러 중 하나인 "Do not use 'new' for side effects" 에 대해 다뤄본다.관련 에러는 new 키워드에 대한 에러 검출이다.대부분 Linter에서 발생되는 에러이지만, 본인은 standard.js 를 기준으로 한다는 점을 참고바란다. Do not use 'new' for side effects 에러는 new 키워드를 통해 인스턴스를 생성하는 과정에서 발생한다.위와 같은 에러가 뜨는 코드는 아래와 같다. new Vue({ el: '#demo', data: { message: 'Hello Vue.js!' } }) or new App() 이러한 코드는 인스턴스 생성만이 목적일 때(main.js 또는 app.js), 간결하게 많이 사용된다.하지만, 일..
-
jQuery $.each() 주의사항 :: 마이구미Javascript 2017. 6. 12. 21:00
이번 글은 jQuery의 함수인 each의 주의사항을 다뤄본다.each 함수는 기본적으로 for문이라고 봐도 무방하다.jQuery에서 제공하는 일반적인 iterator function 이다. callback 개념이 부족하다면 발생할 수 있는 경우와, each 함수의 return에 대해 알아볼 것이다. 반복문을 쓰는 이유 중 하나의 예로, 배열에 있는 값 중 원하는 값을 찾기 위해 루프를 돌린다고 가정하자.코드는 아래와 같다. someArray = new Array(); someArray[0] = 't5'; someArray[1] = 'z12'; someArray[2] = 'b88'; someArray[3] = 's55'; someArray[4] = 'e51'; someArray[5] = 'o322'; s..
-
strict mode in Vuex :: 마이구미Vue.js 2017. 6. 6. 23:15
이번 글은 상태 관리 패턴 모듈 Vuex의 엄격 모드에 대해 다뤄본다.충분한 정보를 가지고 있다면, 엄격 모드로 인한 에러 발생 시 당황하지 않고 해결할 수 있다. "Error: [vuex] Do not mutate vuex store state outside mutation handlers." 혹시 위와 같은 에러가 발생했다면, 엄격 모드로 인해 에러가 발생한 것이다.외부 변이 핸들러에서는 vuex 저장소 상태를 변이할 수 없다는 메시지가 된다.대부분 콜백 함수에서 변이하려고 했을 경우 발생한다. Vuex의 엄격 모드에 대해 처음부터 살펴보자.Vuex를 사용해봤다면, strict 모드를 설정했을 것이다. export default { modules: { channel, lock, player, }, s..
-
백준 14585번 사수빈탕 [DP] :: 마이구미알고리즘 풀이/동적계획법 2017. 5. 30. 23:38
이번 글은 백준 알고리즘 문제 14585번 "사수빈탕" 을 다뤄본다.문제는 2017 고려대학교 프로그래밍 대회에서 출제된 문제이다.문제 풀이는 동적계획법으로 접근할 수 있다. 수빈이는 좌표평면 위에 앉아있다. "나는 좌표평면이 너무 좋아!!" 라고 수빈이가 말했다. 좌표평면에는 N개의 사탕바구니가 있고, 각 사탕 바구니에는 M개의 사탕이 있다. 각 사탕 바구니는 (x1, y1), (x2, y2), …, (xn, yn)에 있고, 수빈이는 (0, 0)에 있다.오늘은 날씨가 덥다. 따라서 시간이 1만큼 지날 때마다 모든 사탕바구니에서 사탕은 1만큼 줄어든다. 수빈이는 매우 배가 고프기 때문에, 사탕바구니에 있는 사탕을 순식간에 모두 먹을 수 있다. 수빈이가 1만큼 움직일 때, 시간은 1만큼 지나간다. 수빈이는..
-
백준 14583번 이음줄 :: 마이구미알고리즘 풀이/수학 2017. 5. 28. 10:44
이번 글은 백준 알고리즘 문제 14583번 "이음줄" 을 다뤄본다.최근 고려대학교 프로그래밍 대회에서 출제된 문제이다.본인은 굉장히 신선한 문제라고 생각했다. 문제 풀이는 직사각형, 평행사변형, 피타고라스, 각의 이등분선 등에 대한 이론이 필요하다.학생시절 머리 좀 써야하는 수학문제를 푼다는 느낌을 받을거라 생각한다. 문제는 링크를 통해 확인하길 바란다. 직사각형 종이를 접힌 부분을 표시해보면 아래와 같다. 우리가 구해야할 것은 보라색 영역의 가로와 세로가 된다. 우리는 직사각형의 대각선의 길이인 d를 먼저 구할 수 있다.h, v 가 주어진 상태이기 때문에 △ABC를 피타고라스의 정리를 이용할 수 있다. double d = Math.sqrt(h * h + v * v); 그 다음, 각의 이등분선의 성질을 ..
-
백준 14582번 오늘도 졌다 [그리디] :: 마이구미알고리즘 풀이/그리디 2017. 5. 25. 22:40
이번 글은 백준 알고리즘 문제 "오늘도 졌다" 를 다뤄본다.2017년 고려대학교 프로그래밍 대회에서 출제된 문제이다.문제 풀이는 그리디 알고리즘으로 접근할 수 있다. 야구 지식이 하나도 없다면, 문제가 헷갈릴 수 있다.그 이유로 아마 정답률이 30%대이지 않을까 생각한다.14582번 오늘도 졌다. - https://www.acmicpc.net/problem/14582그리디 알고리즘 - http://mygumi.tistory.com/121 프로야구팀 울림 제미니스는 오늘도 졌다. 이번에는 스타트링크 걸리버스의 4번타자가 끝내기 홈런을 쳐서 졌다. 울림 제미니스의 열렬한 팬인 지수는 속으로 화를 참으며 어떤 선수 때문에 졌는지 생각해보았다. 지수는 팀이 역전패를 했다면 불펜 투수의 책임이고, 그렇지 않다면 ..
-
백준 2942번 퍼거슨과 사과 [최대공약수] :: 마이구미알고리즘 풀이/수학 2017. 5. 23. 22:49
이번 글은 백준 알고리즘 2942번 "퍼거슨과 사과" 를 다뤄본다.문제 풀이는 GCD, 즉 최대공약수를 활용하여 문제를 해결할 수 있다. 맨체스터 유나이티드의 감독 퍼거슨은 빨간 사과를 R개, 초록 사과를 G개 가지고 있다. 훈련장에 있는 선수들 중 몇 명에게 나누어 주려고 한다. 단, 선수들이 서로 같은 개수의 사과를 받지 못하면 경기력 저하가 나타날 수 있으므로 모든 선수에게 같은 개수를 주려고 한다. 퍼거슨 감독은 사과를 싫어한다. 따라서 사과가 남으면 안된다.예를 들어, 퍼거슨이 빨간 사과를 4개, 초록 사과를 8개 가지고 있다면, 다음과 같이 세가지 방법으로 나누어 줄 수 있다.선수 1명에게 빨간 사과 4개와 초록 사과 8개를 줄 수 있다.선수 2명에게 빨간 사과 2개와 초록 사과 4개를 각각 ..