본문 바로가기

알고리즘49

[백준 Java]14620 꽃길 문제 14620번: 꽃길 (acmicpc.net) 14620번: 꽃길 2017년 4월 5일 식목일을 맞이한 진아는 나무를 심는 대신 하이테크관 앞 화단에 꽃을 심어 등교할 때 마다 꽃길을 걷고 싶었다. 진아가 가진 꽃의 씨앗은 꽃을 심고나면 정확히 1년후에 꽃이 피므 www.acmicpc.net 풀이방법 입력을 받을 때, 꽃술이 생겨날 수 있는 위치(테두리를 제외한 위치)를 Node클래스를 만들어 nodelist에 저장해둔다. 그 뒤에 순열 코드를 사용해 3개의 꽃술의 위치를 구한 후에 거리공식을 통해 거리가 2이내인 꽃들은 죽는 처리를 해준다. static boolean die() { int l1=Math.abs(picknode[0].x-picknode[1].x)+Math.abs(picknode[0]... 2022. 10. 23.
[백준 JAVA]16197 두 동전 문제 https://www.acmicpc.net/problem/16197 16197번: 두 동전 N×M 크기의 보드와 4개의 버튼으로 이루어진 게임이 있다. 보드는 1×1크기의 정사각형 칸으로 나누어져 있고, 각각의 칸은 비어있거나, 벽이다. 두 개의 빈 칸에는 동전이 하나씩 놓여져 있고, www.acmicpc.net 풀이방법 우선 어느쪽으로 갈지 중복순열을 통해서 구해주었다. 10개를 넘으면 -1을 출력하기 때문에, 10개를 뽑아주었다. static void perm(int cnt) { if(cnt==10) { min=Math.min(min, bfs()); return; } for(int i=0; i 2022. 9. 22.
[SW Expert Academy] 3234 준환이의 양팔저울 문제 SW Expert Academy SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이방법 weight배열에 입력을 받고, perm함수를 사용해서 나올수 있는 경우들을 구한다. 이때, 무게추를 올려놓는 순서가 중요하므로 순열을 사용해 구한다. rightleft함수를 사용해서 추를 왼쪽으로 올렸을때, 오른쪽으로 올렸을때를 구해준다. 이때 left+get[index] >= right조건과 left >= right+get[index]조건을 걸어서, 오른쪽 위에 올라가있는 무게의 총합이 왼쪽에 올라가 있는 무게의 총합보다 커지지 않게 해준다. 코드 import java.util.Arrays; import java... 2022. 9. 21.
[SW Expert Academy Java]3289 서로소 집합 문제 SW Expert Academy SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이방법 go라는 변수를 만들어 합집합인지, 두 원소가 같은 집합에 포함되어 있는지 확인하는 연산인지를 구분한다. 합집합은 make의 함수를 사용한다. 모든 노드가 자신을 부모로하는(대표자) 집합으로 만든다. go가 1이라면, find함수를 사용해 각각의 대표자(부모)를 찾아주고, 부모가 같다면(같은 집합에 포함되어있다면 ) 1을, 아니면 0을 출력해준다. make함수와 find함수가 잘 이해가 안된다면 아래의 글을 읽어보도록 하자! 서로소 집합 만들기 (tistory.com) 서로소 집합 만들기 서로소 집합 서로소 집합이란,.. 2022. 9. 21.