본문 바로가기

자바37

[백준 Gold 5] 1068 트리 - Java 문제링크 : https://www.acmicpc.net/problem/1068 1068번: 트리 첫째 줄에 트리의 노드의 개수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 0번 노드부터 N-1번 노드까지, 각 노드의 부모가 주어진다. 만약 부모가 없다면 (루트) -1이 주어진다 www.acmicpc.net 접근 과정 : 트리에 속한 노드 중 하나를 삭제했을 때, 남아있는 리프노드의 갯수를 구하는 문제이다. 노드를 삭제하면 그 노드의 자식 노드들도 같이 삭제된다. 우선 자식노드를 저장하는 List 를 생성했다. 그리고 삭제할 노드부터 그 이하 자식노드를 모두 boolen[] removed에 체크했다. 이제 0번 노드부터 N-1번 노드까지 순회하면서, 현재 리프노드인 것만 계산했다. .. 2021. 12. 27.
[백준 Gold 3] 2437 저울 -Java 문제링크 : https://www.acmicpc.net/problem/2437 2437번: 저울 하나의 양팔 저울을 이용하여 물건의 무게를 측정하려고 한다. 이 저울의 양 팔의 끝에는 물건이나 추를 올려놓는 접시가 달려 있고, 양팔의 길이는 같다. 또한, 저울의 한쪽에는 저울추들만 놓 www.acmicpc.net 접근 과정 : 처음에는 감이 오지 않아서, 추의 무게 조합을 모두 구해볼까 생각도 했다. 그런데 잴 수 없는 최소 무게는 항상 1부터 시작하더라.. 그러면, 추를 무게순으로 정렬시켜 놓고 -> 앞에것부터 더해가면 유의미한 현상이 보이지 않을까 생각했다. 좀 더 생각을 해보니, 누적합보다 현재 인덱스의 추의 무게가 더 크면 그 누적합을 측정할 수 없다!! 그리고 1부터 시작하니, 누적합보다 작은 .. 2021. 12. 25.
[백준 Gold 1] 1700 멀티탭 스케줄링 - Java 문제링크 : https://www.acmicpc.net/problem/1700 1700번: 멀티탭 스케줄링 기숙사에서 살고 있는 준규는 한 개의 멀티탭을 이용하고 있다. 준규는 키보드, 헤어드라이기, 핸드폰 충전기, 디지털 카메라 충전기 등 여러 개의 전기용품을 사용하면서 어쩔 수 없이 각종 전 www.acmicpc.net 접근 과정 : 문제를 보자마자, 페이지 교체 알고리즘 중 최적 페이지 교체 알고리즘이 생각났다. 실제로는, 미래에 어떤 페이지를 가장 사용하지 않을지 모르기에 사용할 수 없는 알고리즘. 그러나 문제에는 어떤 전기용품들이 사용될 지 알려주고 있다.!!!! 현재 사용중인 전기용품들중, 가장 오랫동안 사용되지 않을 전기용품을 교체한다!! 소스 코드 및 결과 : package BOJ; /* .. 2021. 12. 24.
[백준 Gold 4] 21923 곡예 비행 - Java 문제링크 : https://www.acmicpc.net/problem/21923 21923번: 곡예 비행 동헌이는 모형 비행기 조종 대회에 참가하였다. 이 대회에서는 격자 모양의 공간에서 모형 비행기를 조종하여 얻는 비행 점수로 순위를 매긴다. 격자의 각 칸에는 점수가 부여되어 있고, 비행 www.acmicpc.net 접근 과정 : 상승 비행과 하강 비행을 따로 관리 (상승 구간과 하강 구간이 중복되는 칸이 1~N개 있다!!!) 상승 비행이 끝나는 칸 == 하강 비행이 시작하는 칸 비행 점수 = (r,c)까지 상승한 경우 + (r,c)부터 하강하는 경우 DP로 하강 비행을 탐색하고 하강 비행 탐색 로직 내부에서 상승 비행 탐색을 수행 하강비행 = (r,c)까지 상승비행 + (r,c)부터 하강비행 OR (.. 2021. 12. 16.