전자 제품에는 저항이 들어간다. 저항은 색 3개를 이용해서 그 저항이 몇 옴인지 나타낸다. 처음 색 2개는 저항의 값이고, 마지막 색은 곱해야 하는 값이다. 저항의 값은 다음 표를 이용해서 구한다.

예를 들어, 저항의 색이 yellow, violet, red였다면 저항의 값은 4,700이 된다.
첫째 줄에 첫 번째 색, 둘째 줄에 두 번째 색, 셋째 줄에 세 번째 색이 주어진다. 위의 표에 있는 색만 입력으로 주어진다.
입력으로 주어진 저항의 저항값을 계산하여 첫째 줄에 출력한다.
orange
red
blue
32000000
2번과 3번 중에 3번을 택해서 풀이했는데, 2번으로 할 경우 white white white의 경우 99,000,000,000이라 int 범위를 넘어가 3번으로 해결했다. int 말고 다른 자료형을 쓰면 되긴 하지만, 이건 취향인지라..
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
String[] color = {"black", "brown", "red", "orange", "yellow", "green", "blue", "violet", "grey", "white"};
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int[] number = new int[3];
for(int i=0; i<3; i++) {
String input = br.readLine();
for(int j=0; j<color.length; j++) {
if(color[j].equals(input)) {
number[i]=j;
}
}
}
String answer = "";
if(number[0]!=0) {
answer = Integer.toString(number[0]) + Integer.toString(number[1]);
} else {
answer = Integer.toString(number[1]);
}
if(!answer.equals("0")) {
for(int i=0; i<number[2]; i++) {
answer += "0";
}
}
System.out.print(answer);
}
}
이 방법을 사용할 경우, 놓치게 되는 게 있는데 곱했을 때 0이면 당연히 출력값도 0이 되어야 한다. 예를 들어, black black grey가 입력될 경우에 0000000000이지만, 출력은 0이어야 한다. black brown brown 같은 경우엔 010이지만, 출력은 10이어야 한다. 그래서 첫 번째 값이 0일 때, 첫 번째 값을 무시해줬고, 두 번째에도 0일 경우 곱하는 부분을 무시하도록 해주었다.
이번 문제는 단순했다. 예시에 0과 관련된 예시가 있었다면 더 금방 풀었겠지만, 이걸 의도하고 낸 문제같다. (아님 말고) 크게 회고할 문제는 아닌 것 같..다. EASY!