Programming/알고리즘 (33) 썸네일형 리스트형 [백준] 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 [백준] 1110- 더하기 사이클 - JAVA[자바] 문제의 조건을 다시 한번 적어보자면, N의 1의 자릿수는 새로운 수의 10의 자리로, N의 1의 자릿수와 10의 자릿수를 더한 값의 1의 자릿수는 새로운 수의 1의 자리로 가면 된다. (만약 N 이 한 자릿수 정수라면 앞에 0을 붙여서 더한다.) 원래 숫자를 mother_num, 파생된 수를 son 이라고 하면, son의 십의 자리 숫자 : ((son % 10) * 10) son의 일의 자리 숫자: ((son/10) + (son % 10)) % 10; 가 된다. 그래서 답을 적어보면 아래와 같다. import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; public class Main{ publi.. [백준] 10951 - A+B-4 - JAVA[자바] 이 문제에서 주의할 점은 파일 종료 조건이 없이 입력이 주어진다는 것이다. 즉 입력에서 더이상의 읽을 수 있는 데이터가 존재하지 않을 때 반복문을 종료하라는 것이다. 데이터가 더이상 존재하지 않을 때 우리는 EOF (End of File) 즉, 파일의 끝이라 한다 BufferedReader를 쓰면, readLine()을 통해 입력받아 연산하는데, readLine() != null 일때까지만 while문을 돌려주면 되겠다. 주의 할점! import java.io.IOException; import java.io.InputStreamReader; import java.io.BufferedReader; import java.util.StringTokenizer; public class Main{ public.. [백준] 2438 - 별찍기 - 1 - JAVA[자바] 파이썬에서처럼 System.print.out("*" * i); 로 해서는 안된다. String * int 는 JAVA에서 지원하지 않는다. 이중 반복문을 통하여 출력하여 주어야 한다. 방법 1. StringBuilder를 이용 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(b.. [백준] 10950번 - "A + B - 3" - JAVA[자바] 여러개의 입력을 받는다는 포인트에서 정리가 필요함을 느꼈다. 여러개의 입력을 받는것은 크게 어렵지 않다. 우선 예제의 입력을 보면 첫번째 줄에 "테스트 케이스의 개수 T" 가 주어진다. 이 입력을 먼저 받아야 반복문에 들어갈 조건을 써줄 수 있다. Scanner 보다 BufferedReader방식이 더 빠르고, 그리고, 일반적으로 StringTokenizer가 split()메소드로 나누어주는 것보다 성능이 좋다. 또, StringBuiler에 계산식 넣고 한번에 출력하면 System.out.println() 으로 매 줄 출력하는것보다 성능이 좋다. import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOExcept.. [백준] 2480 - 주사위 세개 - java[자바] 변수 3개를 고려해야 하는 문제인데, 처음으로 판단해야 할 것은 역시 "3개의 변수가 모두 다른지, 아닌지"가 중요하다 3개의 변수가 모두 다른게 아니라면 적어도 하나 이상의 같은 변수가 존재한다 우선 모두 다를 때는 - a, b, c 의 순서를 찾아주는 것이 중요하다. // 모든 변수가 다른 경우 if (a != b && b != c && a != c) { int max; // a > b 일 경우 if (a > b) { // c > a > b 라면 if (c > a) { max = c; } // a > (b, c) else { max = a; } } // b > a 라면 else { // c > b > a 라면 if (c > b) { max = c; } // b > (a, c) else { max = .. [백준] 2753 - 윤년 -JAVA[자바] 조건 중에 가장 강한 것을 찾는게 포인트이다. "4의 배수 " 조건을 가장 먼저 갖고 오는게 맞다고 생각하기 쉽상인데, 사실상 이 문제에서는 "400의 배수" 조건을 먼저 놓는 것이 좋다. 왜냐하면, 400의 배수라면 다른 조건을 생각하지 않고서도 무조건 윤년이기 때문이다. 그 뒤에 100의 배수의 조건을 넣는다. 400의 배수 조건이 없다면 100의 배수일 때는 무조건 윤년이 아니기 때문이다. 그 뒤에야 4의 배수 조건이 와야하는 것이 맞다. import java.io.InputStreamReader; import java.io.IOException; import java.io.BufferedReader; public class Main { public static void main(String[] a.. 이전 1 2 3 4 5 다음