분류 전체보기
-
OOP(Object Oriented Programming)Programming/TIL 2020. 11. 2. 21:47
OOP 언어 메시지를 기반으로 기능과 속성을 한 곳에서 관리하는 기술 Not use Getter&Setter 객체는 OOP 캡슐화의 특성에 따라 객체의 데이터를 외부에서 접근하지 못하게 하고, 함수를 통해서만 조작이 가능해야 한다. 접근 메서드와 수정 메서드는 내부 데이터와 구현을 노출시키므로 유지 보수에 악영향을 미치기 때문에 가능한 사용하지 않아야한다. 또한 객체 데이터가 언제 어디서 변화하는지 코드상으로 구분할 수 없어 차후 기능 변경시 복잡해질 수 있다. Getter&Setter로 어떠한 작업 수행에 필요한 정보를 요구하는 대신 정보를 가진 객체에 일을 해달라고 요청해라(명확히 목적과 의도를 나타낼 수 있는 메서드를 추가해서). velog.io/@cyranocoding/%EA%B0%9D%EC%B2..
-
[BOJ] 인구 이동Algorithm/BOJ 2020. 10. 28. 14:16
[16234] 인구 이동 www.acmicpc.net/problem/16234 Solution 문제에 명시된 국경선을 map[][]에서 1*1 크기의 칸으로 정의하였고, 인접한 국가와의 인구차가 범위 안에 있을 경우에 0으로 표시했다. 모든 국경선에 표시한 뒤 bfs 함수로 연합이 되는 국가의 인구수의 합과 평균을 구해 map[][]에 표시했다. 조건을 만족하는 국경선이 없을 때 까지 while문은 반복된다. 소스코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 ..
-
[BOJ] 택배Algorithm/BOJ 2020. 10. 24. 01:56
[1719] 택배 www.acmicpc.net/problem/1719 Solution 모든 정점에 대해 다익스트라 함수를 실행하여 update된 prev[]의 정보를 활용해서 첫 번째로 경유하는 정점을 찾았다. 돌아서면 까먹는 다익스트라 소스코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90..
-
[BOJ] 찾기Algorithm/BOJ 2020. 10. 23. 15:14
[1786] 찾기 www.acmicpc.net/problem/1786 Solution KMP 알고리즘을 사용해 원본 문자열 t에서 패턴 p를 찾았을 때 count 증가, StringBuilder에 순서 저장으로 구현 단순하게 모든 문자열을 일일이 비교하는 방법을 사용했을 때의 시간 복잡도는 O(NM) 이지만, KMP 알고리즘을 사용하면 O(N+M)의 시간 복잡도를 보인다. 소스코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 import..
-
[BOJ] 미로만들기Algorithm/BOJ 2020. 10. 22. 15:02
[2665] 미로만들기 www.acmicpc.net/problem/2665 Solution 2차원 배열에 대해서 다익스트라로 풀이하는 문제 map[0][0]을 시작점으로 distance[0][0] = 0 으로 할당한 뒤, 4방향에 대해 흰방일 경우에는 방 교체 횟수를 그대로 update하고, 검은방일 경우에는 이전 방 교체 횟수 + 1한 값으로 update 하고 q에 add한다. 마지막으로 distance[n-1][n-1] 출력 소스코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 5..
-
[BOJ] 복도 뚫기Algorithm/BOJ 2020. 10. 21. 16:21
[9373] 복도 뚫기 java www.acmicpc.net/problem/9373 Solution 넘나 어려운 문제. 답 안 봤으면 절대 못 풀었을거 같다 ㅠ^ㅠ.. n개의 센서와 벽을 정점으로 정의하고 벽-센서, 센서-센서를 잇는 간선으로 정의 하여 MST를 만든다. 모든 간선이 들어간 우선순위 큐에서 간선을 뽑으면서 복도를 지나갈 수 있는 센서의 반지름을 구하고 양 벽을 잇는 간선이 나올경우에 프로그램을 종료한다. 양 벽을 잇는 간선의 길이(w)가 복도를 지나갈 수 있는 최대 지름이기 때문이다. 소스코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40..
-
[BOJ] 도시 분할 계획Algorithm/BOJ 2020. 10. 19. 20:50
[1647] 도시 분할 계획 www.acmicpc.net/problem/1647 Solution 마을을 정점으로 하는 최소 간선 트리(MST)를 만드는 문제 전체 마을을 두 개로 분할해야하기 때문에 간선의 개수가 N-2개가 되는 순간 종료하면 된다. 소스코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 import jav..