목록분류 전체보기 (150)
forDevLife
처음엔 while 내에서 계속 정렬을 통해 가장 큰 수와, 다솜이의 수와 비교했으나 priorityQueue를 이용해도 괜찮을 것 같았다. 후보자가 다솜이(1명)만 있을 경우, 0을 리턴하는 코드도 작성 해야 outOfBound(배열 썼을 경우) / NullPointer(큐 썼을 경우) 발생 안함 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader..
간단한 문제이지만, 입력 케이스 별로 처리를 하느라 조금 애를 먹었다. 주요 1 : 연속되는 X의 개수가 짝수일 때, 몫의 수만큼 AAAA를 출력, 나머지가 2라면 한번만 BB를 출력한다. 주요 2 : 연속되는 X의 개수가 홀수일 경우, -1을 출력하고 main 함수 리턴한다. 처리 1 : "."의 이전 값(arr[i-1])이 X일 경우, 세어두었던 cnt를 기준으로 출력하는 print함수를 호출한다. 처리 2 : 처음부터 .이 나오는 경우에 arr[i-1]은 outOfBoundIndex이다. 따라서 i-1>=0이라는 조건을 건다. 처리 3 : 출력 기준을 "."로 했었는데, 맨 마지막 값이 'X'일 경우에도 여태까지 쌓였던 cnt만큼 출력이 필요하다. import java.io.BufferedReade..
- 어려운 문제 오름차순으로 정렬(같을 경우 쉬운 문제 기준으로) - 어려운 문제 풀 수 있으면 140점, 쉬운 것만 가능하면 100점으로 계산 - 문제 풀이 후에, 풀 수 있는 문제 수 K-- import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; class Quiz { int easy; int dif; public Quiz(int easy, int dif) { this.easy = easy; this.dif = dif; } } public class Main { public static void main(String args[]) throws IOExcep..
- 수학적으로 푸는 방법 .. 대단 https://st-lab.tistory.com/72 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; 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()); if (n == 4 || n == 7) { System.out.println(-1); } else if ((..
1. import 문 - 클래스를 사용할 때 import를 통해 패키지 이름을 생략할 수 있다. - 컴파일러에게 클래스가 속한 패키지를 알려준다. - java.lang 패키지의 클래스는 import 필요없다.(기본 패키지이므로) -> String, Object, System, Thread 등 - import문은 패키지문과 클래스 선언 사이에 위치해야 한다. 패키지 선언 -> import 문 -> 클래스 선언 - import는 컴파일 시에 처리되므로, 프로그램의 성능에 문제 없다. 고로 *로 찍어도 된다. -> 컴파일러에게 뭐 시간이 좀 더 걸리긴 하겠지만. -> 하지만 실제로 사용하는 클래스를 명시적으로 지정하는 것도 좋다. - 위의 두 개 코드는 의미가 다름에 유의한다. -> 왼쪽은 java.util ..
- 바구니 길이가 1일 경우, state 하나만 이용해서 처리한다. - 바구니 길이가 2 이상일 경우, state1(맨 앞부분) / state2(맨 뒷부분)을 계산한다. - 다음 계산될 사과 위치에 따라서 state1, state2를 가변하여 사용하며 result를 계산한다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedRead..
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; 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(br.readLine()); int[] arr = new int[N]; StringTokenizer st = new StringTokenizer(br.readLine..
- 더 이상 읽을 수 없는 데이터 있을 때 EOF 처리하는 방법을 몰라서 조금 헤맸다. - 일반적으로 Scanner로 사용한다면, 엔터와 스페이스도 입력 예외 시키지 않고 데이터로 처리한다. - 따라서 프로그램 종료를 위해선 정수가 아닌 값을 입력하여 예외 발생시켜야 한다. - 여기에서는 BufferedReader를 사용했다. 입력 안들어올 경우 null을 반환하므로 처리하기 편하다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] a..
- Stringbuffer / append 적극 활용 - 카운팅은 너무 시간 오래걸림, 나누기로 합시다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int T = Integer.parseInt(br.readLine()); int[] coins = {25, 10, 5, 1}; for(int i=0; i
- 매우 간단한 그리디 알고리즘 - 제일 큰 수를 먼저 빼서, t를 갱신하고 10보다 작을때까지 while을 반복한다. import java.io.IOException; import java.util.*; public class Main { public static void main(String[] args) throws IOException { Scanner sc = new Scanner(System.in); int t = sc.nextInt(); int[] arr = new int[3]; if(t%10 != 0) { System.out.println(-1); return; } while(t >= 10) { if(t >= 300) { t = t - 300; arr[0]++; } else if(t >=6..