빨강(red), 초록(green), 파랑(blue) 빛을 섞어
여러 가지 빛의 색을 만들어 내려고 한다.
빨강(r), 초록(g), 파랑(b) 각각의 빛의 개수가 주어질 때,
(빛의 강약에 따라 0 ~ n-1 까지 n가지의 빛 색깔을 만들 수 있다.)
주어진 rgb 빛들을 다르게 섞어 만들 수 있는 모든 경우의 조합(r g b)과
총 가짓 수를 계산해보자.
예시
int i, j, k, c=0;
int r, g, b;
scanf("%d%d%d”, &r, &g, &b);
for(i=0; i<r; i++)
for(j=0; j<g; j++)
for(k=0; k<b; k++)
{
printf("%d %d %d\n", i, j, k);
c++;
}
printf("%d ", c);
여러 가지 빛의 색을 만들어 내려고 한다.
빨강(r), 초록(g), 파랑(b) 각각의 빛의 개수가 주어질 때,
(빛의 강약에 따라 0 ~ n-1 까지 n가지의 빛 색깔을 만들 수 있다.)
주어진 rgb 빛들을 다르게 섞어 만들 수 있는 모든 경우의 조합(r g b)과
총 가짓 수를 계산해보자.
예시
int i, j, k, c=0;
int r, g, b;
scanf("%d%d%d”, &r, &g, &b);
for(i=0; i<r; i++)
for(j=0; j<g; j++)
for(k=0; k<b; k++)
{
printf("%d %d %d\n", i, j, k);
c++;
}
printf("%d ", c);
입력
빨녹파(r, g, b) 각 빛의 강약에 따른 가짓수(0 ~ 128))가 공백을 사이에 두고 입력된다.
예를 들어, 3 3 3 은 각 색깔 빛에 대해서 그 강약에 따라 0~2까지 3가지의 색이 있음을 의미한다.
예를 들어, 3 3 3 은 각 색깔 빛에 대해서 그 강약에 따라 0~2까지 3가지의 색이 있음을 의미한다.
출력
만들 수 있는 rgb 색의 정보를 오름차순(계단을 올라가는 순, 12345... abcde..., 가나다라마...)으로
줄을 바꿔 모두 출력하고, 마지막에 그 개수를 출력한다.
줄을 바꿔 모두 출력하고, 마지막에 그 개수를 출력한다.
입력예시
2 2 2
출력 예시
0 0 0
0 0 1
시간초과 오류
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
int count = 0;
for (int i = 0; i < a; i++) {
for (int j = 0; j < b; j++) {
for (int k = 0; k < c; k++) {
System.out.printf("%d %d %d\n", i, j, k);
count += 1;
}
}
}
System.out.println(count);
}
}
Buffer 사용해서 풀기
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int count = 0;
try {
String[] rgb = br.readLine().split(" ");
for (int i = 0; i < Integer.valueOf(rgb[0]); i++) {
for (int j = 0; j < Integer.valueOf(rgb[1]); j++) {
for (int k = 0; k < Integer.valueOf(rgb[2]); k++) {
bw.write(i + " " + j + " " + k + "\n");
count++;
}
}
}
} catch (IOException e) {
} finally {
bw.write(String.valueOf(count));
bw.flush();
bw.close();
br.close();
}
}
}
'문제풀기 > 코드업 문제풀기(Java)' 카테고리의 다른 글
1086. 그림 파일 저장용량 계산하기 (0) | 2023.05.02 |
---|---|
1085. 소리 파일 저장용량 계산하기 (0) | 2023.05.01 |
1083. 3 6 9 게임의 왕이 되자! (0) | 2023.04.30 |
1082. 16진수 구구단? (0) | 2023.04.28 |
1081. 주사위를 2개 던지면? (0) | 2023.04.27 |