생각점심 시간에 사람들이 점심을 먹으러 계단을 내려가려고 한다. 계단이 2개 주어져있고 각각의 계단은 최대 3명만 이용이 가능하며, 3명이 계단을 내려가는 중일경우 도착한 사람은 계단입구에서 대기를 하고 있는다. 계단은 도착하자 마자 내려가지 못하고, 도착한 1분 후 부터 내려갈 수 있다. 사람은 1로 주어지고, 계단은 2~10으로 주어지며 2~10은 계단을 내려가는데 걸리는 시간을 의미한다. 사람과 계단의 상태가 주어질 때, 최소로 걸리는 시간을 구하시오. 처음 생각처음 문제를 봤을 때, 이걸 어떻게 구하지?? 라는 생각이 앞섰다. 문제를 찬찬히 읽어보니 가장 결정적인 힌트는 사람이 최대 10명이고, 계단은 무조건 2개라는 것이다. 따라서 계단을 편의상 1번,2번 이라고 하였을 때 사람들이 1번 2번을..
생각주어진 식재료를 반절씩 나누어 A 음식과 B 음식을 만든다. 음식을 만들 때 몇 번째 재료를 사용하였나에 따라서 재료에 따른 시너지 효과가 달라진다. 예를들어 아래와 같은 시너지가 주어졌을 때, 1과 2로 A 음식을 만들면 5 + 4의 시너지인 9가 된다. B음식은 3과 4로 3 + 3 = 6의 시너지가 되어 음식의 차이는 시너지의 차이인 3이된다. 이 차이가 최소가 되는 값을 찾아라. 처음 생각주어진 재료 개수에서 n/2개를 선택해서 A음식을 만들고 선택되지 않은 재료들로 B음식을 만들어 주기위해 방문 배열을 만들고 DFS를 이용하여 부분 집합을 만들어 주었다. 방안1) 입력에 개행이 많이 섞여서 주어지기 때문에 BufferedReader를 사용하지 않고, Scanner를 사용해서 입력을 받았다. ..
생각무선 충전기가 여러곳에 설치되어있다. 각각의 충전기는 각자의 파워와 범위를 가지고 있다. 사람 A,B 두명이 각 각 (1,1) (10,10)에서 출발하여 M 만큼의 방향 명령에 따라서 이동을 한다. 이 때, 한 충전 범위에 두명이 들어있다면 해당 충전 파워/2 만큼 충전을 할 수 있다. 같은 충전기의 범위에 2명이 들어있다해도, 1명이 다른 충전기를 사용하면 다른 한 명이 온전히 충전기를 사용할 수 있다. A 대의 무선 충전기의 위치와 파워 범위가 주어지고, A,B의 이동 현황이 주어질 때 최대 충전 파워를 구하시오. 처음 생각A와 B가 이동 할 때마다 각각의 충전기와 거리를 계산해 범위에 들어가는 확인하는 것은 비효율 적이라 생각하여, 미리 맵 배열에 충전기의 범위 만큼 리스트에 들어있는 각 충전기..
- Total
- Today
- Yesterday