목록구현 (59)
Dev.baelanche
주어진 정수의 자릿수가 증가할때마다 연산의 횟수도 증가한다. 1. n 이 10보다 클때 반복 연산한다. 2. k는 0부터 연산할때마다 1씩 증가하는 변수로 10^k로 n을 나눠 반올림 후 다시 10^k 를 곱해준다. 3. 출력 예제는 자연수이므로 자료형에 신경쓴다. public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); double n = sc.nextInt(); int k = 1; for(int i=10; true; i*=10) { if(n > i) { int pow = (int)Math.pow(10, k); n /= pow; n = Math.round(n); n *= pow; } e..
주어진 사탕 가격을 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...
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
입력 수열에서 위의 식을 역으로 돌려 원래 수열 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
메달 개수 정보를 담은 클래스 생성 > 금, 은, 동메달 수에 따른 정렬 > 등수 구함 순으로 풀었다. 코드가 쓸데없이 길지만 구현만 하면 되는 문제라 설계만 잘하면 술술 풀리는 문제이다. public class Main { static class Country { int rank; int num; int gold; int silver; int bronze; Country(int num, int gold, int silver, int bronze) { this.num = num; this.gold = gold; this.silver = silver; this.bronze = bronze; } } public static void main(String[] args) { Scanner sc = new Sca..
박스의 가로, 세로 길이가 3, 4 일때 크기 5의 성냥도 들어가는걸로 봐서 성냥을 대각선으로 넣는것도 허용된다. 대각선의 길이가 박스내부의 길이 중 가장 크니 피타고라스 공식으로 풀면 된다. public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int w = sc.nextInt(); int h = sc.nextInt(); while(n-->0) { int t = sc.nextInt(); int box = (int)Math.sqrt(w*w + h*h); if(t