전자 제품에는 저항이 들어간다. 저항은 색 3개를 이용해서 그 저항이 몇 옴인지 나타낸다. 처음 색 2개는 저항의 값이고, 마지막 색은 곱해야 하는 값이다. 저항의 값은 다음 표를 이용해서 구한다.
색 | 값 | 곱 |
---|---|---|
black | 0 | 1 |
brown | 1 | 10 |
red | 2 | 100 |
orange | 3 | 1,000 |
yellow | 4 | 10,000 |
green | 5 | 100,000 |
blue | 6 | 1,000,000 |
violet | 7 | 10,000,000 |
grey | 8 | 100,000,000 |
white | 9 | 1,000,000,000 |
예를 들어, 저항의 색이 yellow, violet, red였다면 저항의 값은 4,700이 된다.
첫째 줄에 첫 번째 색, 둘째 줄에 두 번째 색, 셋째 줄에 세 번째 색이 주어진다. 위의 표에 있는 색만 입력으로 주어진다.
입력으로 주어진 저항의 저항값을 계산하여 첫째 줄에 출력한다.
우선 이 문제의 의도는 세개의 색상을 입력하면 첫번째 색깔의 값과 두번째 색깔의 값을 붙여주고 세번째 저항을 곱해주는 방식입니다.
배열을 만들어서 밀어주는 것도 좋지만 ArrayList
로 작성해서 색깔들을 밀어넣어주고 인덱스에 해당하는 것을 찾아서 출력해주었습니다.
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] colors = { "black", "brown", "red", "orange", "yellow", "green", "blue", "violet", "grey", "white" };
ArrayList<String> list = new ArrayList<>(Arrays.asList(colors));
int firstColor = list.indexOf(sc.next())*10;
int secondColor = list.indexOf(sc.next());
int thirdColor = list.indexOf(sc.next());
System.out.println((long)((firstColor + secondColor)*Math.pow(10, thirdColor)));
}
}
아래는 처음에 제출한 정답입니다.
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] colors = { "black", "brown", "red", "orange", "yellow", "green", "blue", "violet", "grey", "white" };
ArrayList<String> list = new ArrayList<>();
for (String color : colors) list.add(color);
int firstColor = list.indexOf(sc.next())*10;
int secondColor = list.indexOf(sc.next());
int thirdColor = list.indexOf(sc.next());
System.out.println((long)((firstColor + secondColor)*Math.pow(10, thirdColor)));
}
}