전체 글 (84) 썸네일형 리스트형 [백준] 4673 - JAVA[자바] 10000보다 작거나 같은 셀프 넘버를 구해야 하므로, 1부터 10000까지 for문을 돌리며 셀프넘버를 찾는다 우선, 반복되는 작업은 함수로 꺼내주는게 깔끔하고, 관리가 편하겠다 public static int cnst(int number){ int sum = number; //각 자리수를 더해주는 로직 while(number!=0){ sum += number%10; number = number/10; } return sum; } number: 생성자 역할 만약 number가 1234라면 number%10 = 4 number/10 = 123 -> while문을 한번 돌면 num=123과 sum 에는 맨 마지막 자리수를 더한 1237이 나오고, 두번 돌면 num =12와 sum=1237+3 = 1240 .. [백준] 4344 - 평균은 넘겠지 - JAVA[자바] 관건은 반올림후, 소수점 셋째자리까지 출력하는 부분이겠다. 1. 테스트 케이스의 갯수를 가져온다. int C = Integer.parseInt(br.readLine()); 2. 한 줄을 불러와서 총점을 구해서 평균을 구할 준비를 한다. 학생 비율을 소수점 셋째자리까지 구해야하기 때문에 변수중 하나를 double로 설정하면 된다. for(int i = 0; i (sum/N)){ over++; } } System.out.printf("%.3f%%\n", (over/N)*100); 기본 출력문은 println()은 변수의 값을 그대로 출력하므로, 값을 변환하지 않고는 다른 형식으로 출력할 수 없다. 반면에 printf()는 지시자를 통해 변수의 값을 여러 가지 형식으로 변환하여 출력할 수 있다. printf(.. [백준] 8958 - OX퀴즈 - JAVA[자바] import java.io.IOException; import java.io.InputStreamReader; import java.io.BufferedReader; public class Main{ public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); String arr[] = new String[N]; for (int i = 0; i < N; i++){ arr[i] = br.readLine(); } for (int i = 0; i < N; i++).. [백준] 1546 - 평균 - JAVA[자바] 문제의 조건 중 눈여겨 봐야할 것은 "실제 정답과 출력값의 절대오차 또는 상대오차가 10-2 이하이면 정답이다." 는 것이다. 처음 제출했을때 틀린코드는 아래와 같다. import java.io.IOException; import java.io.InputStreamReader; import java.io.BufferedReader; import java.util.StringTokenizer; public class Main{ public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt.. [백준] 3052 - 나머지 - JAVA[자바] 2가지 풀이법이 있다. 1. 배열을 이용한 방법 2. HashSet을 이용한 방법 배열을 이용한 방법을 먼저 살펴보면, 1. 불린으로 된 배열을 먼저 만들어주고, boolean[] arr = new boolean[42]; 2. 입력된 10개의 수를 대상으로 42로 나눈 나머지에 해당하는 배열의 위치를 true로 바꾸어준다. for(int i = 0; i < 10; i++){ arr[Integer.parseInt(br.readLine()) % 42] = true; } 3. arr의 boolean 값들을 for문에서 value로 받고, value==true이면 cnt를 1 올려준다. int cnt = 0; for(boolean value : arr){ if(value){ cnt++; } } System.ou.. [백준] 5597 - 과제 안 내신 분..? - JAVA[자바] 배열 두개를 비교하여 참/거짓을 가려내면 된다고 생각했으나, 배열 하나로 완료할 수 있는 과정이었다. import java.io.InputStreamReader; import java.io.IOException; import java.io.BufferedReader; public class Main{ public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int[] attended = new int[28]; int[] student = new int[31]; for(int i = 0; i [백준] 10871 - X보다 작은 수 - JAVA[자바] 1차원 배열 - for문과 if문을 적절히 사용하면 쉬운문제이다. 1. 첫 줄에 수열의 길이 N, 해당 수보다 작은 수를 찾기위한 변수 X가 제공되므로 BufferedReader-> StringTokenizer로 받아준다. 2. 입력 두번째 줄에 수열을 받아야 하므로, StringTokenizer를 다시 호출한다. 이때, 필자는 StringTokenizer st1 = new StringTokenizer(br.readLine(), " "); 로 새로 생성해주었으나, 기존에 생성된 StringTokenizer를 그대로 이용해도된다. st = new StringTokenizer(br.readLine(), " "); 3. 수열을 생성하고, 두번째줄 Input으로 채워넣는다. int[] arr = new int[.. [백준] 10807 - 개수 세기 - JAVA[자바] 배열이 주어진다. 그중 "같은 것을 찾는" 조건 => 배열 과 숫자를 비교하자. 1. BufferedReader 로 input을 받는다. (Scanner보다 성능 좋음) 2. 첫번째 입력줄은 배열의 길이를 뜻한다. => int N = Integer.parseInt(br.readLine());으로 받자 3. Array를 생성해서 두번째 줄 배열 입력을 받자 => int[] arr = new int[N] 4. 공백으로 입력을 받는다 -> StringTokenizer로 받는다. 5. array에 입력을 넣어준다. for(int i = 0; i 이전 1 ··· 3 4 5 6 7 8 9 ··· 11 다음