-
정적 메소드는 언제 써야하는가? :: 마이구미Java 2017. 11. 17. 21:54
이 글은 정적 메소드(static method) 에 대해 다룬다.코드는 Java를 통해 진행하지만, 다른 언어라도 상관없이 볼 수 있는 글이다.정적 메소드에 대한 안 좋은 말들이 많다.편중된 글이 아닌, 단순히 정적 메소드에 대한 이해를 다뤄볼 예정이다.참고 링크 - https://stackoverflow.com/questions/2671496/java-when-to-use-static-methods 정적 메소드를 언제 써야하는지에 대한 의문이 가장 많을거라 생각한다.그에 앞서, 다음의 순서를 통해 알아본다면 훨씬 이해에 도움이 될 것이다. 정적 메소드(static Method)란 무엇인가? 정적 메소드는 2가지로 간략히 말할 수 있다. 클래스의 인스턴스 없이 호출이 가능하며, 인스턴스에서는 호출 할 수..
-
use strict에 대한 이해 :: 마이구미Javascript 2017. 11. 17. 18:22
이 글은 'use strict' 에 대해 다룬다.단순히 엄격 모드라고 알려진 더 나은 오류 검사를 위한 방법이다.참고 링크 - https://stackoverflow.com/questions/1335851/what-does-use-strict-do-in-javascript-and-what-is-the-reasoning-behind-ituse strict 문서 - https://msdn.microsoft.com/ko-kr/library/br230269(v=vs.94).aspx 'use strict' 즉, 엄격 모드는 ES5부터 새로운 기능이다.Lint를 통한 에러 또는 다른 개발자의 코드를 통해 'use strict' 가 타이핑되어 있는 것을 경험했을 것이다. 엄격 모드를 사용하는 방법은 어떻게 되는가? ..
-
백준 6378번 디지털 루트 :: 마이구미알고리즘 풀이/수학 2017. 11. 12. 22:31
이 글은 백준 알고리즘 문제 6378번 "디지털 루트" 를 풀이한다.문제는 단순한 구현이지만, 디지털 루트란 용어와 관련 공식이 실제로 존재하기 때문에 다루게 되었다.위키 - https://en.wikipedia.org/wiki/Digital_root문제 링크 - https://www.acmicpc.net/problem/6378 양의 정수 N의 디지털 루트를 구하려면 N을 이루고 있는 모든 자리수를 더해야 한다. 이 때, 더한 값이 한 자리 숫자라면, 그 수가 N의 디지털 루트가 된다. 두 자리 이상 숫자인 경우에는 다시 그 수를 이루고 있는 모든 자리수를 더해야 하며, 한 자리 숫자가 될 때 까지 반복한다.24의 디지털 루트를 구해보자. 2+4=6이다. 6은 한 자리 숫자이기 때문에, 24의 디지털 루..
-
백준 4195번 친구 네트워크 :: 마이구미알고리즘 풀이/디스조인트-셋 2017. 11. 12. 20:48
이 글은 백준 알고리즘 문제 4195번 "친구 네트워크" 를 풀이한다.풀이 방법으로는 디스조인트-셋을 통해 진행된다.문제 링크 - https://www.acmicpc.net/problem/4195디스조인트 셋 이해 - http://mygumi.tistory.com/246 민혁이는 소셜 네트워크 사이트에서 친구를 만드는 것을 좋아하는 친구이다. 우표를 모으는 취미가 있듯이, 민혁이는 소셜 네트워크 사이트에서 친구를 모으는 것이 취미이다.어떤 사이트의 친구 관계가 생긴 순서대로 주어졌을 때, 가입한 두 사람의 친구 네트워크에 몇 명이 있는지 구하는 프로그램을 작성하시오.친구 네트워크란 친구 관계만으로 이동할 수 있는 사이를 말한다. 노드를 친구로, 간선을 친구 관계라고 생각할 수 있다.친구 관계라는 것은 같..
-
백준 9938번 방 청소 :: 마이구미알고리즘 풀이/디스조인트-셋 2017. 11. 9. 20:55
이 글은 백준 알고리즘 문제 9938번 "방 청소" 를 풀이한다.풀이 방법으로는 디스조인트-셋 자료구조를 이용한다.개인적으로 보면, 굉장히 어려운 문제가 된다.문제 링크 - https://www.acmicpc.net/problem/9938디스조인트 셋 이해 - http://mygumi.tistory.com/246 은기는 술병 N개(1부터 N까지 번호가 매겨져 있다)와 서랍 L개(1부터 L까지 번호가 매겨져 있다)를 가지고 있다. 술병은 은기의 방 바닥에 흩어져 있고, 어린이날을 맞이해 방 청소를 하려고 한다. 서랍에는 술병이 하나 들어갈 수 있다. 나중에 원하는 술을 빠르게 찾을 수 있게 하기 위해 은기는 각각의 술병이 들어갈 수 있는 서랍의 번호 Ai와 Bi를 공책에 적어 놓았다.은기는 술병을 1번부터..
-
백준 13458번 시험 감독 :: 마이구미알고리즘 풀이/그리디 2017. 11. 5. 23:03
이 글은 백준 알고리즘 13458번 "시험 감독" 을 풀이한다.삼성 SW 역량 테스트의 기출 문제이다.문제는 그리디(Greedy)하게 접근할 수 있다.정답 비율과 삼성 기출 문제를 보면 쉽지 않게 느껴지지 않지만, 굉장히 쉬운 문제가 된다.문제 링크 - https://www.acmicpc.net/problem/13458그리디 알고리즘 - http://mygumi.tistory.com/121 총 N개의 시험장이 있고, 각각의 시험장마다 응시자들이 있다. i번 시험장에 있는 응시자의 수는 Ai명이다.감독관은 총감독관과 부감독관으로 두 종류가 있다. 총감독관은 한 방에서 감시할 수 있는 응시자의 수가 B명이고, 부감독관은 한 방에서 감시할 수 있는 응시자의 수가 C명이다.각각의 시험장에 총감독관은 오직 1명만..
-
백준 1717번 집합의 표현 :: 마이구미알고리즘 풀이/디스조인트-셋 2017. 11. 5. 22:23
이 글은 백준 알고리즘 문제 1717번 "집합의 표현" 을 풀이한다.문제는 디스조인트-셋(disjoint-set)을 이용하여 해결할 수 있다.문제 링크 - https://www.acmicpc.net/problem/1717디스조인트-셋 이해 - http://mygumi.tistory.com/246 초기에 {0}, {1}, {2}, ... {n} 이 각각 n+1개의 집합을 이루고 있다. 여기에 합집합 연산과, 두 원소가 같은 집합에 포함되어 있는지를 확인하는 연산을 수행하려고 한다.집합을 표현하는 프로그램을 작성하시오. 이 문제는 디스조인트-셋에 대해 기초를 다지기 위한 가장 기본적인 문제가 된다.0일 때, 유니온(union) 을 호출하고, 1일 때, 파인드(find) 를 호출하면 된다. 다음 예제를 통해 ..
-
디스조인트-셋(disjoint-set) :: 마이구미알고리즘 2017. 11. 5. 17:27
이 글은 디스조인트-셋(disjoint-set) 자료구조를 다룬다.유니온-파인드(union-find) 라고도 불리고, 머지-파인드-셋이라고도 불리는 자료구조이다.위키백과 - 디스조인트-셋 디스조인트-셋은 해석하면 서로소 집합이라고 표현할 수 있다.서로소 집합이란, 공통된 원소가 없는 집합으로써, 교집합이 공집합인 집합이라고 보면 된다. 디스조인트-셋을 활용하기 위해서는 다음과 같은 정의를 확실히 이해해야한다. 많은 상호 배타적 부분 집합들로 나눠진 원소들에 대한 정보를 저장하고 조작하는 자료구조. "상호 배타"와 "독립"을 혼동해서는 안된다.독립은 집합으로 표현하면 다음과 같다. A ∩ B = 0, A ∪ B = U A와 B 사이에는 어떠한 관계도 존재하지 않다는 것을 알 수 있다.상호 배타는 다음과 같..