알고리즘 14

[백준] 2428번 표절

[백준] 2428번 표절 문제설명 문제만 보면, 상당히 간단한 문제여서 금방 풀 수 있을 것 같았는데,, 늪에 빠져서 한참을 헤맸다ㅠㅅㅠ 문제풀이 방법 1. 두 파일을 비교하면서 i≠j이고, size(Fi) ≤ size(Fj)이면서, size(Fi) ≥ 0.9 × size(Fj) 이 조건을 만족시키는 쌍일 경우만 검사를 하면 된다. 2. 하나씩 비교해가면서 탐색해도 되지만, n의 최대 크기가 100,000 이기 때문에, n^2 탐색을 하게 되면 시간초과가 날것이다. 3. 그렇기 때문에 오름차순 정렬 후, 이분탐색을 사용해서 조건을 만족시키는 최대 값을 찾으면 된다. Example) 예를들어, 조건을 만족시키는 최대값의 index가 3이라고 가정해보자. 그렇다면, 비교해야할 index 0 을 제외하고 in..

알고리즘/백준 2020.11.02

[백준] 1068번 트리

[백준] 1068번 트리 문제 설명 입출력 문제풀이 방법 트리가 주어지고, 삭제할 노드에 연결되어 있는 노드를 모두 제거한 후 리프노드의 개수를 출력하면 된다. 1. 주어진 노드가 어떤 루트 노드와 연결되어 있는지 정보를 저장할 arr 배열 하나를 선언한다. 2. 삭제할 노드 R 을 입력받은 후 delete(R) 을 통해 R에 연결되어 있는 노드를 모두 삭제한다. - 삭제가 된 노드인지를 판별하기 위해 boolean값의 node 배열을 사용했다. - 삭제가 된 노드면 node[i]의 값을 true로 바꾸게 된다. - 삭제를 하는 방법은 BFS방법을 통해 연결된 것을 모두 지우도록 했다. 3. 삭제가 끝나면 리프노드를 찾아야 한다. - 삭제되어진 노드는 제외하고 ( 즉, node가 true인 것은 제외 )..

알고리즘/백준 2020.10.27

[프로그래머스] 쿼드압축 후 개수 세기 - JAVA

[프로그래머스] 쿼드압축 후 개수 세기 - JAVA 문제 설명 풀이과정 1. 구역을 정해서 그 구역이 0으로 채워있으면 0으로 압축, 1으로 채워져있으면 1로 압축하는 과정 1-1. 만약, 모두 똑같은 숫자로 되어 있다면 zeroCnt or oneCnt를 증가시킨다. 1-2. 압축되지 않는다면 2번으로! 2. size/2 만큼 잘라서 재귀호출을 하여 1번의 과정을 반복한다. 2-1. size/2를 자르고 포인트는 dx, dy를 아래와 같이 설정하는 것이다. static double[] dx = {0, 0, 0.5, 0.5}; static double[] dy = {0, 0.5, 0, 0.5}; 내가 놓쳤던 부분 - 전체가 똑같은 0이나 1로 채워져있는 경우를 반영해주지 않았다! 소스 코드 import j..

[프로그래머스] N으로 표현

[프로그래머스] N으로 표현 문제 설명 [ 생각하기 ] 1. N의 숫자만을 사용하여 사칙연산을 할 수 있고, 그 결과가 number 이 나오는 최소한의 N의 개수를 구하는 문제이다. 2. N의 개수의 범위가 1~8, N을 1~8번 사용해서 만들 수 있는 수 중 number이 나오는지 파악하면 된다. (N = 5라고 가정) 5의 개수가 1 5 5의 개수가 2 55 5+5, 5-5, 5*5, 5/5 5의 개수가 3 555 [5의 개수가 1] (사칙연산) [5의 개수가 2] [5의 개수가 2] (사칙연산) [5의 개수가 1] 5의 개수가 4 5555 [5의 개수가 1] (사칙연산) [5의 개수가 3] [5의 개수가 2] (사칙연산) [5의 개수가 2] [5의 개수가 3] (사칙연산) [5의 개수가 1] 이게 ..

알고리즘 2020.06.18