알고리즘 문제풀이/SWEA
-
sw expert academy 6109번 추억의 2048게임문제 자바(java) 풀이 난이도 : D4 sw expert academy 6109번 추억의 2048게임 문제정리 이는 2048 게임을 직접 해보는 것이 더 빠르게 이해할 수 있을 것 같다. 간단히 이야기 하자면 2의 배수로만 이루어진 타일들이 있는데 같은 숫자의 타일이 겹쳐지면 더해지는 게임이며 최종적으로 2048이라는 숫자를 가지는 타일을 만들면 끝나느 게임입니다. 2048게임 해보기 문제풀이 ArrayList를 중첩하여 이용하여 2차원 배열처럼 사용하여 게임판을 표현하였습니다. 전체적인 로직은 다음과 같습니다. 우선 ArrayList를 중첩하여 2차원 배열 처럼 사용할 수 있도록 초기화 합니다(initList) 그 다음 move 함수를 통..
[SWEA] 6109번 추억의 2048게임 자바(java) 풀이sw expert academy 6109번 추억의 2048게임문제 자바(java) 풀이 난이도 : D4 sw expert academy 6109번 추억의 2048게임 문제정리 이는 2048 게임을 직접 해보는 것이 더 빠르게 이해할 수 있을 것 같다. 간단히 이야기 하자면 2의 배수로만 이루어진 타일들이 있는데 같은 숫자의 타일이 겹쳐지면 더해지는 게임이며 최종적으로 2048이라는 숫자를 가지는 타일을 만들면 끝나느 게임입니다. 2048게임 해보기 문제풀이 ArrayList를 중첩하여 이용하여 2차원 배열처럼 사용하여 게임판을 표현하였습니다. 전체적인 로직은 다음과 같습니다. 우선 ArrayList를 중첩하여 2차원 배열 처럼 사용할 수 있도록 초기화 합니다(initList) 그 다음 move 함수를 통..
2020.02.28 -
sw expert academy 1865 동철이의 일 분배 자바(java) 풀이 난이도 : D4 sw expert academy 1865 동철이의 일 분배 문제정리 N명의 직원, N개의 일 ( 한 사람당 하나의 일을 맡아서 진행 ) 인덱스 : 1~N 주어진 일을 모두 성공할 확률의 최댓값 구하기 문제풀이 처음에는 그리디로 풀어볼까? 하는 생각이 들었다. 하지만 행에서 가장 큰 수만을 뽑아나간다 해도 최적의 해를 구할 수 없다. 최대 16개의 순열을 구해야한다.(1
[SWEA] 1865번 동철이의 일 분배 자바(java) 풀이 (순열, 조합, 그리디)sw expert academy 1865 동철이의 일 분배 자바(java) 풀이 난이도 : D4 sw expert academy 1865 동철이의 일 분배 문제정리 N명의 직원, N개의 일 ( 한 사람당 하나의 일을 맡아서 진행 ) 인덱스 : 1~N 주어진 일을 모두 성공할 확률의 최댓값 구하기 문제풀이 처음에는 그리디로 풀어볼까? 하는 생각이 들었다. 하지만 행에서 가장 큰 수만을 뽑아나간다 해도 최적의 해를 구할 수 없다. 최대 16개의 순열을 구해야한다.(1
2020.02.27 -
sw expert academy 1861 정사각형 방 자바(java) 풀이 난이도 : D4 sw expert academy 1861 정사각형 방 분배 문제정리 N2의 방이 존재 (최대 1000x1000 방이 존재) i번째 줄 왼쪽에서 j번째 방에는 Ai,j가 적혀있다. (방 마다 모두 다르다) 상하좌우로 방을 이동할 수 있다. ( 현재 방에 적힌 숫자보다 1 큰 경우만) 어떤 방에서 출발해야 가장 많이 이동할 수 있는지, 그렇다면 얼마만큼 이동 가능한지 출력! 문제풀이 이동할 수 있는 방의 개수가 최대인 방이 여러개 있다면, 적힌 수가 가장 작은 것 출력 dfs를 이용한다. 모든 점(i,j)에서 dfs 탐색을 한다. visited는 i,j에 쓰여있는 숫자인 방번호로 방문했는지 안했는지 1차원 배열로 표현..
[SWEA] 1861 정사각형 방 자바(java) 풀이sw expert academy 1861 정사각형 방 자바(java) 풀이 난이도 : D4 sw expert academy 1861 정사각형 방 분배 문제정리 N2의 방이 존재 (최대 1000x1000 방이 존재) i번째 줄 왼쪽에서 j번째 방에는 Ai,j가 적혀있다. (방 마다 모두 다르다) 상하좌우로 방을 이동할 수 있다. ( 현재 방에 적힌 숫자보다 1 큰 경우만) 어떤 방에서 출발해야 가장 많이 이동할 수 있는지, 그렇다면 얼마만큼 이동 가능한지 출력! 문제풀이 이동할 수 있는 방의 개수가 최대인 방이 여러개 있다면, 적힌 수가 가장 작은 것 출력 dfs를 이용한다. 모든 점(i,j)에서 dfs 탐색을 한다. visited는 i,j에 쓰여있는 숫자인 방번호로 방문했는지 안했는지 1차원 배열로 표현..
2020.02.27