Algorithm/Problem_SW31 SW 역량 테스트 기출 문제(퇴사, 연구소) [퇴사 _ 14501] * 조건 퇴사 날짜 전까지는 스케줄을 진행할 수 있다 수행한 스케줄이 있으면 일당을 받는다 최대로 얻을 수 있는 이익을 구해야한다 * 알고리즘 - 가능한 모든 경우의 수를 탐색: 브루트포스 * 로직(Logic) - 해당 스케줄을 포함하는 경우와 포함하지 않고 다음날의 스케줄을 고려하는 경우를 재귀로 반복 -> 전체 경우 탐색 - 다음 일정이 퇴사일을 넘어가게 되면 -> 이전까지 누적된 이익으로 비교 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Problem_14501 { stat.. 2019. 10. 10. SW 역량 테스트 기출 문제(주사위 굴리기, 테트로미노) [주사위 굴리기 _ 14499] * 조건 동서남북(1,2,3,4) 주어진 주사위 전개도를 기준으로 굴리는 상황 고려 맨 처음 주사위의 각 면에는 0으로 초기화 이동한 칸에 0이 아닌 수가 존재 -> 주사위 밑면 = 해당 좌표 값 && 해당 좌표 값 = 0 0이라면 -> 해당 값 = 주사위 밑면 주사위가 굴러가야 count++ 범위를 벗어나면 굴리면 안됨 * 알고리즘 - 명령에 맞게끔 작업이 진행: 시뮬레이션 * 로직(Logic) - 기존에 주어진 주사위 각 면에 할당된 번호를 주사위 배열(Dice)의 인덱스라고 생각한다 - 동서남북 방향으로 각가 굴렸을 때 변경되는 인덱스를 미리 배치 - 변경된 각 면의 번호(인덱스)에 존재하는 값을 기존 Dice에 덮어준다 - 이동할 좌표가 범위를 벗어난다면 다시 이전.. 2019. 10. 9. SW 역량 테스트 기출 문제(뱀, 시험 감독) [뱀 _ 3190] * 조건 1. 뱀은 몸 길이를 한칸 늘려 위치시킨다 2. 이동한 칸에 사과가 존재한다면 사과를 없애고 몸의 길이가 늘어난다(해당 칸을 흡수) 3. 사과가 없다면 꼬리를 없앤다(몸의 길이는 변하지 않음) 4. 사과 좌표를 위해 size = n+1로 설정 5. 뱀의 시작 위치는 (1,1) / 처음엔 오른쪽(2차원 배열 시점)으로 전진 6. 좌우 방향의 개념은 뱀의 시선에서 적용해야함 7. 벽 또는 자기자신의 몸통에 부딪히면 종료 * 알고리즘 명령에 맞게끔 방향을 조작해야함 : 시뮬레이션 * 로직(Logic) 우선 2차원 배열에서 사과가 위치하는 곳에 1값을 부여 뱀의 몸통을 담을 좌표 클래스를 생성하고 출발점에 우선적으로 큐에 삽입 방향은 시계방향(위,오,아,왼)으로 설정 요구되는 방향에.. 2019. 10. 7. 이전 1 ··· 7 8 9 10 11 다음