전체 글 121

swea 5215 [D3] 햄버거 다이어트 JAVA

제한된 칼로리 조건 하에서 가장 만족도 높은 조합을 선택하면 되는 문제 풀이 : 부분 집합 -> 재귀 함수 탐색을 하면서 만족도와 현재까지의 칼로리를 계속 기록하며 선택한 경우 --> 해당 항목의 만족도와 칼로리를 더해준 뒤 진행하고 선택하지 않은 경우 --> 기존의 상태에서 다음 번째 항목으로 넘겨주는 위 과정만 이해하신다면 유사한 문제들을 쉽게 풀이 Code public class Solution5215 { static int N, L; static int[] scores; static int[] cal; static int ans; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T = sc.nextI..

SWEA 2023.11.29

swea 4615 [D3] 재미있는 오셀로 게임 JAVA

풀이 : dx, dy를 활용해서 8방향으로 움직이면서 if 문을 활용해 게임 판 내에 있는지 확인. 상대방 돌을 뒤집을 수 있으면 뒤집음 Code public class Solution4615 { static int N;// 보드 한변의 길이 (4, 6, 8 중 하나) static int M;// 플레이어가 돌을 놓는 횟수 // 상, 하, 좌, 우, 좌상, 우하, 우상, 좌하 static final int[] dx = { -1, 1, 0, 0, -1, 1, -1, 1 }; static final int[] dy = { 0, 0, -1, 1, -1, 1, 1, -1 }; static int[][] map; public static void main(String[] args) throws Exception ..

SWEA 2023.11.29

swea 3307 [D3] 최장 증가 부분 수열 JAVA

풀이 : DP로 해결해야 함 -> N (1 ≤ N ≤ 1,000) dp 배열을 만들고 그떄의 최대 길이를 저장하면서 max를 갱신해야함. ( dp를 쓰면, 이전에 했던 최대 길이 구하는 과정을 중복 안할 수 있음 ) Code public class Solution3307 { static int[] arr; static int[] dp; static int max, N; public static void main(String args[]) throws Exception { Scanner sc = new Scanner(System.in); int T = sc.nextInt(); for(int tc = 1; tc

SWEA 2023.11.29

swea 2806 [D3] N-Queen JAVA

풀이 : DFS로 풀어야 함. board[N]을 만들어 열을 내려가면서 해당 행에 어떤 위치에 퀸을 놓았는지 명시. 재귀 호출을 통해 위쪽 열(curr = 0)부터 퀸을 놓고 아래로(curr = N) 내려가는 방식 Code public class Solution2806V { static int board[]; // 퀸의 위치를 담는다. (board[0]=1 -> (0,1)에 하나의 퀸이 있다. board[1] = 3 -> (1,3)에 하나의 퀸이 있다.) static int answer; public static void main(String args[]) throws Exception { Scanner sc = new Scanner(System.in); int T = sc.nextInt(); for(i..

SWEA 2023.11.29
1 2 3 4 5 6 7 8 ··· 13