이 문제는 규칙이 있다.

첫 번째 테스트 케이스를 정렬해서 보면

13 12 12 11 11 10 10 이 된다.


1. 큰 것부터 하칸씩 자리를 비우며 재배치 한다.

13 X 12 X 12 X 11 


2. 남은 빈칸에도 큰것부터 다시 배치한다.

12 11 12 10 12 10 11


이런 식으로 배치하는 것이 두 기둥간 차이를 최소로 가지게 된다.



DFS 완전탬색을 이용하여 해결하였다.


시간을 줄이기 위해, 중간 거리의 합이, 기존에 계산한 답보다 크거나 같으면 바로 반환한다.


모든 고객을 방문하고, 집으로 돌아오는 거리를 계산해 주는것을 잊으면 안된다.



중복 좌표가 있을 수 있으므로, STL set을 사용했다.


수신기 수 만큼, 가장 적은 수신 가능 영역을 가지는 위치를 뽑아낸다.



비싼 옷 3개씩 구매한다. 그러면 3개중 가장 싼 하나를 혜택볼 수 있다.



 0점은 항상 받을 수 있는 점수이다.


여기서 새로운 점수를 받을 때 마다 더해주며, 이전에 가능한 점수들 + 새로 받은 점수를 더해주어 가능한 점수를 체크한다.



문제에 주어진 조건대로 트리를 따라 그리면 이기는 사람의 규칙이 정해져있다.



대각선으로 갈 수 있는 만큼가고, 나은 만큼 이동한다






 long long으로 해결할 수 없다고 댓글에 달려있어서


vector를 이용하여 , 숫자를 문자열 곱셈으로 답을 구했다.


normalize, multiply는 곱셈에 관련된 함수로, 주어진 a^b을 수행한다 즉 a * a * a ...를 이용해 곱셈 답을 찾아내고


그 이후에 계산한 값들을 다 더해준다.




가장 작은 값이 합칩합의 대표 원소로 나타낼 수 있도록 기록해 놓는다.




+ Recent posts