문제 내용은 색 3개를 입력으로 받게 되는데 처음 두개는 문자열 붙이듯이 합쳐주면 되는데 예제를 보면 yellow(4), violet(7) 이니, 47이 되는거고 이후 마지막 받은 색을 곱한 결과를 출력해주면 되는데, 예제에서는 47 * 100 = 4700이 나오는 식이다
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
HashMap<String, Long[]> map = new HashMap<>();
map.put("black", new Long[]{0L, 1L});
map.put("brown", new Long[]{1L, 10L});
map.put("red", new Long[]{2L, 100L});
map.put("orange", new Long[]{3L, 1000L});
map.put("yellow", new Long[]{4L, 10000L});
map.put("green", new Long[]{5L, 100000L});
map.put("blue", new Long[]{6L, 1000000L});
map.put("violet", new Long[]{7L, 10000000L});
map.put("grey", new Long[]{8L, 100000000L});
map.put("white", new Long[]{9L, 1000000000L});
long val = Long.valueOf(
String.valueOf(map.get(br.readLine())[0]) + String.valueOf(map.get(br.readLine())[0]));
System.out.println(val * map.get(br.readLine())[1]);
}
}
문제를 풀어보자면, Map 안에 색깔과 값, 곱을 배열 형태로 넣어준 후 처음 두 번 들어온 색을 합쳐주고 이후 세 번째 들어온 값을 곱해준 결과를 출력해주면 끝이다
문제에서 나올 수 있는 최대값이 이미 예제로 나왔기에 시간 계산은 크게 고려할 필요가 없다
Leave a Reply