본문 바로가기

삼성 소프트웨어 역량 테스트

(6)
[Java] SW Expert Academy 2105번 문제: [모의 SW 역량테스트] 디저트 카페 (DFS, 깊이 우선 탐색) --- 문제 --- 2105. [모의 SW 역량테스트] 디저트 카페 --- 코드 --- 해당 문제는 DFS 를 사용하면 되는 문제 입니다. 대신 특이사항이 몇가지 있습니다. 사각형은 무조건 한가지 방향 흐름으로 그려낼 수 있다는 점 시작점에서 갈 수 있는 모든 방향을 dfs 로 하는 것이 아니라 처음에는 무조건 시작점에서 하우(오른쪽아래)방향으로 움직이고, 그 다음 방향은 하좌 -> 상좌 -> 상우 로 움직이면 되는 것 입니다. 이 점만 잘 파악했다면 쉽게 풀어질 수 있는 문제였습니다. (처음에 저는 시작점에서 가능한 모든 대각선 방향으로 움직이게 코드를 작성했다가 처리 시간이 엄청 오래걸리게 되었습니다.) 카페 투어 중에 중복되는 디저트 값이 있으면 안되는 것 이것은 Set 자료구조를 이용해서 풀면 됩..
[Java] SW Expert Academy 1953번 문제: [모의 SW 역량테스트] 탈주범 검거 (BFS, 너비 우선 탐색) --- 문제 --- 1953. [모의 SW 역량테스트] 탈주범 검거 --- 코드 --- 가능한 도보의 갯수의 범위를 1칸씩 늘려가며 체크하는 BFS 문제 인데, 특수하게 고려할 것이 많은 문제이다. 고려할 것은 이전에 방문했던 것은 다시 방문할 필요가 없는 것 시간 L을 넘지 않기 위해 같은 시간에 방문하는 위치의 갯수(cand->turn)를 저장시켰다가 그 만큼 확인후에(turn==0) 시간을 다음 시간으로(++hour) 변경해야하는 것 위로 움직였을 때 못 가는 터널이 있고(아래 방향으로 뚫리지 않은 터널이 있는 경우), 아래로 움직였을 때 못가는 터널이 있고 좌,우도 똑같이 못가는 터널을 고려해주어야 하는 것 이 3가지 고려 점들이 문제를 더욱 어렵게 만들어 주었습니다. 제가 푼 풀이는 다음과 같습..
[Java] SW Expert Academy 2806번 문제: N-Queen(DFS, BackTracking, 백트래킹) --- 문제 --- 2806번 : N-Queen --- 코드 --- import java.io.FileInputStream; import java.io.FileNotFoundException; import java.util.Scanner; public class Sw2806 { public static int[] arr; public static int sum; public static void main(String[] args) throws FileNotFoundException { System.setIn(new FileInputStream("./src/2806.txt")); Scanner sc = new Scanner(System.in); int T=sc.nextInt(); for(int test_c..
[Java] SW Expert Academy 3752번 문제: 가능한 시험 점수 (Dynamic Programming, 동적 계획법) --- 문제 --- 3752. 가능한 시험 점수 제한 시간이 짧은 문제 (시간 최적화 필요) --- 코드 --- 역시나, 처음에 DFS 방식으로 하나하나 맞았다,안맞았다로 풀어봤더니 시간 초과가 나왔습니다. 그래서 이 문제는 더 쉽게 동적 계획법으로 푸는 것이 맞다는 것을 알았습니다. 문제가 추가 되면서 생겨나는 숫자를 하나씩 Set 구조에 추가하는 방식입니다. 이는 다음과 같은 규칙 때문에 가능합니다. 예로 A = {a,b,c,} 라는 배점 배열이 있을 때를 보겠습니다. 문제 갯수 (n) 0 a b c a+b a+c b+c a+b+c a 한 개 일때 0 a a,b 두 개 일때 0 a b a+b a,b,c 세 개 일때 0 a b c a+b a+c b+c a+b+c 위 표를 보시면 a가 한개일 때에서 a,..
[Java] SW Expert Academy 2819번 문제: 격자판의 숫자 이어 붙이기 (너비우선탐색 BFS) --- 문제 --- 격자판의 숫자 이어 붙이기 --- 코드 --- 1. 격자에 숫자를 입힌다. 2. 격자의 임의의 한 자리를 시작점으로 6스텝 옮겨서 숫자를 만든다(BFS) 3. 결과를 중복되지 않게 저장하는 Set 자료 구조에 추가한다 4. 모든 격자 칸을 시작점으로 위 과정을 반복해서 마지막에 Set에 저장된 숫자 갯수를 출력한다 import java.io.FileInputStream; import java.io.FileNotFoundException; import java.util.HashSet; import java.util.Scanner; public class Sw2819 { public static HashSet result; public static int[][] map; public st..
[Java] SW Expert Academy 2072번 문제: 홀수만 더하기 - Brute Force --- 문제 --- 2072. 홀수만 더하기 --- 코드 --- import java.util.Scanner; import java.io.FileInputStream; import java.io.FileNotFoundException; public class Sw2072 { public static void main(String[] args) throws FileNotFoundException { System.setIn(new FileInputStream("./src/2072.txt")); Scanner sc = new Scanner(System.in); int T=sc.nextInt(); for(int test_case = 1; test_case

728x90
반응형