728x90
반응형
[CodeUp] 1084 : 주어진 rgb 빛들을 다르게 섞어 만들 수 있는 모든 경우의 조합(r g b)과 총 가짓 수를 계산해보자.
입력
빨녹파(r, g, b) 각 빛의 강약에 따른 가짓수(0 ~ 128))가 공백을 사이에 두고 입력된다.
예를 들어, 3 3 3 은 각 색깔 빛에 대해서 그 강약에 따라 0~2까지 3가지의 색이 있음을 의미한다.
출력
만들 수 있는 rgb 색의 정보를 오름차순(계단을 올라가는 순, 12345... abcde..., 가나다라마...)으로
줄을 바꿔 모두 출력하고, 마지막에 그 개수를 출력한다.
-> Scanner와 System.out.println()을 사용하여 문제를 풀었더니 시간초과가 발생했다.
해결방법
BufferdReader와 BufferedWriter를 사용하여 해결
기존코드
변경코드
import java.util.Scanner;
import java.io.*;
class Main {
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try{
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
String a=br.readLine();
String[] arr=a.split(" ");
int count=0;
for(int i=0;i<Integer.valueOf(arr[0]);i++){
for(int j=0;j<Integer.valueOf(arr[1]);j++){
for(int k=0;k<Integer.valueOf(arr[2]);k++){
bw.write(i+" "+j+" "+k+"\n");
count++;
}
}
}
bw.write(String.valueOf(count));
bw.flush();
}catch(IOException e){
e.printStackTrace();
}
}
}
* 두 개의 코드는 같은 결과값을 보이지만 처리되는 시간과 메모리에 있어 배가 넘는 차이를 가졌다.
728x90
반응형