목록알고리즘 (266)
Dev.baelanche
주어진 사탕 가격을 k 자리에서 반올림하여 출력한다. 1. 값의 범위를 고려하여 자료형은 double 로 했다. 2. 주어진 가격을 10의 배수로 나누어 소수점을 만들어 반올림 후 다시 10의 배수를 곱했다. 3. 위 방법대로 하면 10의 배수는 10^k 이다. public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); double c = sc.nextLong(); int k = sc.nextInt(); long pow = (long)Math.pow(10, k); c /= pow; c = Math.round(c); c *= pow; System.out.println((long)c); sc...
노드의 간선의 정보를 받아 DFS, BFS 로 구현한다. 1. 그래프 형태로 정보를 받아 저장한다. 2. visited 배열을 만들어 방문 이력을 기록한다. 3. DFS 및 BFS 를 구현한다. public class Main { static int n; static int m; static int a[][]; static boolean visited[]; public static void main(String[] args) { Scanner sc = new Scanner(System.in); n = sc.nextInt(); m = sc.nextInt(); a = new int[n+1][n+1]; visited = new boolean[n+1]; int V = sc.nextInt(); for(int i=..
1. 일의 시간 정보를 배열에 담는다. 2. 일이 들어온 순서대로만 처리하므로 배열의 앞 인덱스부터 수행 시간을 비교하여 푼다. public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int t = sc.nextInt(); int a[] = new int[n]; int cnt = 0; for(int i=0; i
가장 처음 겹치는 글자의 인덱스를 구하여 배열의 가로, 세로의 인덱스로 사용한다. public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String a = sc.next(); String b = sc.next(); int x = 0; int y = 0; char c[][] = new char[b.length()][a.length()]; for(int i=0; i
이차원배열을 세로로 탐색하면서 점수를 비교하였다. public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int a[][] = new int[n][3]; int score[] = new int[n]; for(int i=0; i
X 주변에 . 이 3개 이상이면 X 도 . 으로 치환이 된다. 지도 밖으로 나가도 바다로 취급하므로 인덱스 바깥도 . 으로 계산한다. 편의상 배열의 크기를 r+2, c+2 로 만들어서 외곽을 바다로 둘렀다. a = new char[r+2][c+2]; 배열을 . 으로 초기화 한 후 외곽을 제외하고 스캔 받았다. for(int i=1; i
입력 수열에서 위의 식을 역으로 돌려 원래 수열 A 를 구해야 한다. 수열 A 에서 인덱스 까지의 수열을 더한 후 인덱스 개수만큼 나누었으니 수열 B 에서 인덱스 개수만큼 곱하고 인덱스 까지의 수열을 빼면 된다. public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int a[] = new int[n]; int p[] = new int[n]; for(int i=0; i
그래프에서 인접노드를 찾는 문제이다. 상근이의 친구의 친구까지 카운트 해야 하므로 노드 1번에 연결된 노드의 수와 그 노드에 연결된 노드의 수를 세면 된다. public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); int a[][] = new int[n+1][n+1]; boolean visited[] = new boolean[n+1]; ArrayList f = new ArrayList(); int cnt = 0; for(int i=0; i