본문 바로가기

모의 역량 테스트15

모의 SW 역량테스트(수영장) [수영장] * 로직 재귀를 사용해 DFS를 돌려 모든 경우의 수를 고려하면 된다. 우선 1월~12월까지 모두 수영장을 이용하는 일수가 존재하지 않다면 -> answer = 0으로 리턴한다 만약 존재하는 상황이라면 우선적으로 1년 이용권을 사용한 경우로 answer를 갱신한 뒤 재귀함수를 진행한다 현재 index의 값(Month[])이 0이라면 -> 값 갱신 없이 다음 index를 호출한다 1 이상이라면 -> 3가지 경우를 호출한다 1일 이용권 사용하는 경우 1달 이용권 사용하는 경우 3달 이용권 사용하는 경우 위 과정을 반복하며 최솟값을 갱신한다 // 수영장 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStr.. 2020. 4. 16.
모의 SW 역량테스트(점심 식사 시간) [점심 식사 시간] * 로직 계단 1과 2로 갈 수 있는 사람들의 모든 경우의 수를 구한다 각 경우의 수가 구해질 때마다 로직을 진행한다 계단 1과 2를 목적지로 하는 사람들에 대해 -> 도착하는데 걸리는 시간을 갱신한다(limit) 시간을 1분씩 늘려나가면서 계단 1을 내려가고 있는 사람이 존재한다면(큐) 각각 1분씩 늘려주고, 만약 다 내려갔다면 pop & cnt++를 해준다 계단 1을 목적지로 하는 사람들의 시간을 1분씩 늘려주고 만약 계단에 도착했다면 이미 계단 1에 3명이 꽉찼다면 -> 1분 감소시키고, wait 표기를 해준다 공간에 여유가 있다면 -> 계단 1 큐에 넣어준다 (대기를 하는 사람의 경우 계단 1의 큐가 빈 경우 바로 내려갈 수 있기 때문에 wait 표기가 있다면 바로 진입하게끔 .. 2020. 4. 10.
모의 SW 역량테스트(요리사) [요리사 - 4012] * 로직 A, B 음식을 만들기 위한 경우의 수(조합)을 구한다 구해질때마다 A, B의 맛에 대한 값을 구한다 최솟값을 계속 갱신한다 아래 코드는 A와 B에 대한 경우의 수를 따로 관리해 담는 방식을 택했지만, 한쪽만 조합을 구하고(A) 그 나머지가 B가 되도록 하면 시간적인 면도 개선할 수 있다고 생각했다(이 방식을 추천한다) //요리사 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.StringTokenizer; public class Problem_4012 { static int .. 2020. 3. 26.