본문 바로가기

IT warehouse

(138)
[Java] 백준 알고리즘 14499번 문제 : 삼성 SW 역량 테스트 기출 문제 - 주사위 굴리기 (Simulation, 시뮬레이션) --- 문제 --- --- 코드 --- 조금 구질구질한(?) 방법이긴 하지만, 주사위 면들을 한 줄로 줄 세워 놓고, 방향에 따라 각 면에 있는 숫자들을 옮기면서 풀었습니다. 예를 들어서 문제에 나온 주사위 모습에서 1번인 면이 배열의 첫번째이고, 6번인 면이 배열의 마지막이라고 하면 dice = {1,2,3,4,5,6} 이런 식으로 주사위가 되어 있다고 했을 때, 주사위를 동쪽으로 움직이게 되면 dice = {4,2,1,6,5,3} 이렇게 1이 어떤 곳이 3번 면으로 가고, 2였던 곳은 계속 2번 면에 있고, 4였던 곳은 1번 면으로 돌아가게 됩니다. 이런 면의 움직임이 방향에 따라 정해져 있기 때문에 이런 움직임을 나타내는 배열을 선언 했습니다. public static final int[][] DI..
[Java] 백준 알고리즘 13458번 문제 : 삼성 SW 역량 테스트 기출 문제 - 시험감독 (Greedy Algorithm, 그리디 알고리즘) --- 문제 --- --- 코드 --- import java.util.Scanner; public class Bj13458 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); long[] stu = new long[N]; for(int i=0; i
[Java] 백준 알고리즘 3190번 문제 : 삼성 SW 역량 테스트 기출 문제 - 뱀 (Deque, Double-Ended Queue,덱/데크) --- 문제 --- --- 코드 --- 자료구조 중 하나인 Deque(Double-Ended Queue,덱/데크) 를 이용하는 문제였습니다. 뱀이 머리가 이동하고 꼬리가 늘어나거나, 꼬리도 같이 이동하거나 이므로 다음 이동 장소를 queue 의 첫번째 요소에 추가하고 사과가 없으면 뒤에 꼬리를 제거하고, 사과가 있으면 꼬리를 나두는 형태 입니다. import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Deque; import java.util.Scanner; public class Bj3190 { public static final int[][] DIRECTIONS = {{0,1},{1,0},{0,-1},{-1,0}}; publ..
[Java] 백준 알고리즘 12100번 문제 : 삼성 SW 역량 테스트 기출 문제 - 2048(Easy) (DFS, 깊이 우선 탐색) --- 문제 --- --- 코드 --- import java.util.Scanner; public class Bj12100 { public static int N; public static int[][] map; // 방향 왼쪽부터 상 하 좌 우 public static final int[][] DIRECTIONS = {{-1,0},{1,0},{0,-1},{0,1}}; public static int max_value; public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 1. Initialize N = sc.nextInt(); map = new int[N][N]; max_value = 0; // 1-1. N이 1..
[Java] 백준 알고리즘 13460번 문제 : 삼성 SW 역량 테스트 기출 문제 - 구슬 탈출2 (BFS, 너비 우선 탐색) --- 문제 --- --- 코드 --- 두 공을 동시에 같은 방향으로 움직이면서, 그 때 그 때의 상황을 체크해주어야 하므로 BFS 방식을 사용해야 했습니다. (DFS 로 해보려고 했다가 아주 생고생을 했습니다 . // ) 해당 문제의 특이점은 다음과 같습니다. 한번 보드를 기울이면 공이 벽까지 굴러간다. 제가 이부분을 이해 못해서 시간을 다 날렸습니다 ... 보드를 기울였을 때 신의 능력이 있어서 한칸만 구슬을 움직이고 멈출 수 있는 것이 아니었습니다. 무조건 벽이나 구멍이나 다른 구슬이 있을 때까지 굴러가야 합니다. 방문이력을 빨간 구슬과 파란 구슬을 함께 검사해야 한다. 전체적으로 보드를 봤을 때, 빨간 구슬과 파란 구슬 둘의 위치가 똑같이 반복되는 상황이 있으면 결국 그 뒤부터는 똑같은 상황이 반..
[Java] SW Expert Academy 2112번 문제: [모의 SW 역량테스트] 보호 필름 (DFS, 깊이 우선 탐색) --- 문제 --- 2112. [모의 SW 역량테스트] 보호 필름 --- 코드 --- 이 경우는 다차원 배열의 깊은 복사 법을 알면 더 빠르게 풀 수 있는 문제였습니다. 얕은 복사는 기존의 원래의 배열의 값도 같이 변경되기 때문에 제대로된 계산이 어렵기 때문입니다. 저는 2차원 배열의 깊은 복사로 다음과 같은 방법을 사용했습니다. // 3-1-1. 기존 단면 복사 int[][] copy =new int[D][W]; for(int r=0; r
[Java] SW Expert Academy 2105번 문제: [모의 SW 역량테스트] 디저트 카페 (DFS, 깊이 우선 탐색) --- 문제 --- 2105. [모의 SW 역량테스트] 디저트 카페 --- 코드 --- 해당 문제는 DFS 를 사용하면 되는 문제 입니다. 대신 특이사항이 몇가지 있습니다. 사각형은 무조건 한가지 방향 흐름으로 그려낼 수 있다는 점 시작점에서 갈 수 있는 모든 방향을 dfs 로 하는 것이 아니라 처음에는 무조건 시작점에서 하우(오른쪽아래)방향으로 움직이고, 그 다음 방향은 하좌 -> 상좌 -> 상우 로 움직이면 되는 것 입니다. 이 점만 잘 파악했다면 쉽게 풀어질 수 있는 문제였습니다. (처음에 저는 시작점에서 가능한 모든 대각선 방향으로 움직이게 코드를 작성했다가 처리 시간이 엄청 오래걸리게 되었습니다.) 카페 투어 중에 중복되는 디저트 값이 있으면 안되는 것 이것은 Set 자료구조를 이용해서 풀면 됩..
[ML/Tabular] GAIN: Missing Data Imputation using Generative Adversarial Nets (Missing Value Imputation) GAIN: Missing Data Imputation using Generative Adversarial Nets Generative Adversarial Imputation Nets (GAIN) Paper : http://proceedings.mlr.press/v80/yoon18a/yoon18a.pdf Code : https://github.com/jsyoon0823/GAIN Generative Adversarial Nets (GAN) 알고리즘을 이용하여 새롭게 고안한 MVI 방법으로 데이터가 없는 missing data 부분을 다시 생성하는 알고리즘 Missing data types missing data 는 3가지 타입으로 분류될 수 있다. missing completely at random (MC..

728x90
반응형