본문 바로가기

알고리즘/SW Expert Academy 문제풀이5

[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.
[SW Expert Academy Java] 1954 달팽이 숫자 문제 SW Expert Academy SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이방법 D2치고는 좀 까다로운 문제였다. 찾아야할 조건은 다음과 같다. 1.방향전환의 조건 -경계를 넘어갈 때 방향 전환 -이미 숫자가 채워져있으면, 방향 전환 2.방향 변환의 규칙 -델타{오른쪽->아래->왼쪽->위} 3.종료 조건 -0인 값이 없으면 종료 -값이 N*N이 되면 종료 1)N*N 이차원 배열 준비 2)(0,0)에서 시작 3)현 위치에 값 셋팅 4) 다음 위치로 진행 -방향 전환 조건에 해당하면 -> 진행 방향 변경 -방향 전환 조건에 해당안됨 -> 진행 방향으로 진행 5)값 증가 6)출력 후 종료 코드 impo.. 2022. 9. 12.
[SW Expert Academy Java] 4112 이상한 피라미드 탐험 문제 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWJHmLraeEwDFAUH SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이방법 처음에는 모든 숫자에게 높이를 부여하는 배열을 생성해서 bfs를 돌릴려 그랬다. 하지만 피라미드를 그려서 최적경로를 찾아보니 굳이 그럴 필요가 없다는 것을 알았다. while(num 2022. 9. 12.