Algorithm101 알고리즘(최댓값과 최솟값, 최솟값 만들기, 피보나치 수, 행렬의 곱셈) - Java [최댓값과 최솟값] * 로직 공백을 기준으로 split을 진행하고 최댓값과 최솟값을 갱신해주면 된다 // 최댓값과 최솟값 import java.util.StringTokenizer; public class Problem_MAX_MIN { public static void main(String[] args) { String s = "1 -2 -3 4"; String answer = solution(s); System.out.println(answer); } public static String solution(String s) { String answer = ""; StringTokenizer st; st = new StringTokenizer(s, " "); int min = Integer.MAX_VAL.. 2020. 5. 4. SW 역량 테스트 기출 문제(이차원 배열과 연산) [이차원 배열과 연산 - 17140] * 로직 R, C가 배열 A의 사이즈 범위 내에 있다면 만약 A[R][C] = K라면 -> 바로 0초를 출력 그렇지 않다면 -> doSolution() 진행 R, C가 배열 A의 사이즈 범위를 벗어난다면 doSolution() 바로 진행 1초씩 늘려나가면서 N>=M이라면 R연산 진행 N 이전의 배열 사이즈를 유지한다 만약 크다면 -> 배열 사이즈를 갱신한다 (100보다 큰 경우엔 100으로 제한을 둔다) 따로 보관해둔 각 행들의 정보(map_tmp)에서 하나씩 꺼내어 A 배열에 새롭게 값을 넣어준다 넣어줄 때, 새로 갱신된 배열의 사이즈보다 작다면 -> 나머지 부분은 0을 넣는다 사이즈보다 크다면 -> 나머지 부분은 제거한다 C 연산 역시 같은 맥락이다 이후 A[R].. 2020. 4. 30. SW 역량 테스트 기출 문제(연구소 3) [연구소 3 - 17142] * 로직 바이러스들의 위치를 따로 담아둔다(virusList) 빈칸이 존재하면 개수를 카운팅하고 만약 개수가 0개라면 -> 0을 출력한다 그렇지 않다면 로직을 진행한다 따로 보관한 바이러스들의 리스트에 대해 M개를 뽑는 경우의 수를 구한다(조합) 경우의 수가 뽑힐 때 마다 바이러스를 퍼뜨려본다 (BFS) Time을 1초씩 늘려보면서 BFS를 진행해보고, 1초가 흐를 때마다 빈칸이 모두 바이러스로 퍼졌는지 확인한다 만약 모두 퍼졌다면 최소 시간을 갱신한다 // 연구소 3 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayLi.. 2020. 4. 29. 이전 1 ··· 5 6 7 8 9 10 11 ··· 34 다음