전체 글

문제에서 움직이는 우주선의 특징을 이용하여규칙을 찾아내야 합니다.저 같은 경우는 연습장에 차근차근 써 봤습니다.거리 1부터 7까지 최소한의 도약 횟수를 문제로 써보다보니규칙 하나를 찾을 수 있었습니다.x개의 자리를 가진 숫자의 MAX값의 집합에는 이러한 규칙이 있습니다. 1자리 1 -> null 1 null2자리 1 1 -> null 1 1 null3자리 1 2 1 -> null 1 2 1 null4자리 1 2 2 1 -> null 1 2 2 1 null5자리 1 2 3 2 1 -> null 1 2 3 2 1 null6자리 1 2 3 3 2 1 -> null 1 2 3 3 2 1 null7자리 1 2 3 4 3 2 1 -> null 1 2 3 4 3 2 1 null .... .... 보시면 처음 시작을 ..
테스트 케이스 개수를 정수 T로 받고층과 호수의 크기를 저장할 2차원 배열 a를 선언합니다T의 개수만큼 각각 3개의 숫자 정보( 층, 호수, n번째 손님)을 저장할 수 있고,YY, XX변수로 n번째 손님의 층과호수를 저장하여res배열에 조합하여 저장합니다. for문을 2개 돌려서층부터 증가시켜주되 현재 층수가 정해진 층수를 넘어가면1층으로 되돌아가 호수를 1번 counting해줍니다. for문 안돌리고 바로 정의해서 하려 했는데자꾸 반례때문에 짜증나서 무식하게 했습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39import java.util.*; publi..
숫자세트가 가진 성질 중 6과 9를 서로 바꿀 수 있다는 점에 주목해야합니다.이 때문에 2번 틀렸습니다. 반례) 9900666 -> 결과값 : 3 900966 -> 결과값 : 2 각 자리 값을 저장할 배열을 선언해 주고,자리값을 앞부분부터 뒷부분 까지 parsing하여 index에 맞춰서 counting을 해줍니다. 이 때 중요한 점은 6과 9입니다.6과9의 총 개수가 2개일 경우 1세트, 4개일 경우 2세트, 6개일 경우 3세트 ..1개일 경우 1세트, 3개일 경우 2세트, 5개일 경우 3세트.. 숫자 하나가 남지만 세트를 추가해줘야하는 홀수개수의 경우 때문에경우에 따라 조건문을 사용하여 need배열에 다시 재정의해서 넣어줍니다.이 때 이미 need[6] 즉 6이 필요한 개수를 이미 정의했으므로need..
· 자바
Char - '0'을 이용하면 int형으로 변환이 가능하다.Character.getNumervalue(input.charAt(i)) 를 이용해도 형변환이 가능하나위의 방법이 훨씬 편하다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14public class baekjoon { public static void main(String[] args) { char ch_int; int real_int; ch_int = '3'; real_int = 3; if ( ch_int == real_int) System.out.println("아직은 다르다"); else if ( ch_int-'0' == real_int) System.out.println("같다"); } } 결과 : 같다
층과 호수를 저장할 2차원 배열 a를받아온 T의 개수만큼 선언해줍니다.그리고 그 아파트 층, 호수에 맞는 사람이 저장될res 배열을 선언합니다. 아파트에 사는 인원의 규칙은 “a 층의 b 호에 살려면 자신의 아래(a-1)층에 1호부터 b 호까지 사람들의 수의 합만큼 사람들을 데려와 살아야한다”인데 저는 이걸 0~2층 1~5호까지 숫자로 적어보니 a층의 i호수의 인원수는 a-1층 i호수와 a층 i-1호수의 인원 수를 합한 것과 같다라는 규칙을 찾았습니다. 이전 호수와 이전 층이 없는 0층과 1호수 부분을 제외하고위의 규칙을 재귀함수를 불러내는 식으로 정의해주시면 됩니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 2..
문제에서 요구하는 X번째 분수만을 찾는 경우로 제한하면훨씬 간단하게 코딩이 가능합니다 전 무식하게 모든분수를 출력하는 반복문에서마지막 분수만 출력하도록 if문으로 조건을 줬습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int X = sc.nextInt(); int a=1,b=1; int pre_num=1; i..
a1 = 1a2 = 1 + 6a3 = 1 + 6 + 12a4 = 1 + 6 + 12 + 18 ... 다음과 같은 규칙을 갖고 있으므로1을 시작으로 하여 범위 값을 증가시킬 때마다6이 증가된 값을 넣어주어야하합니다 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int input = sc.nextInt(); int n=1; int add=0; int result=1; while(n
ArrayList로 받는 이유는중복되는 책들 때문에 배열의 크기가 정확하게 정해지지 않았기 때문입니다. books_array로 중복되지 않는 책들의 집합들을 저장합니다저장한 index에 맞추어서 책의 개수를 저장할idx또한 counting 해줍니다. 이 때, 책의 개수가 최대인 책의 index를max변수에 저장해두는 식을 적어줍니다. max의 값과 동일한 수의 책들의 집합을 res_array에 넣어주고,사전순으로 Sorting 후에가장 맨 앞의 책을 출력해줍니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33import java.util.*; public class Main { public ..
알파벳을 받아온 후아스키코드값을 -'a'를 이용해 index에 맞춰준 후에int배열에 알파벳이 등장할 때마다 counting해줍니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String input = sc.next(); int[] res = new int[26]; for(int i=0; i
· 자바
Arrays.sort 함수를 사용함 사전 순서대로 배열, 길이 순서대로 배열->http://blog.naver.com/PostView.nhn?blogId=occidere&logNo=220869372814&parentCategoryNo=&categoryNo=&viewDate=&isShowPopularPosts=false&from=postView 2차원 배열 정렬 (2차원 배열 안에 있는 숫자 데이터로 정렬)-> http://zoonvivor.tistory.com/56
배게
백엔드