본문 바로가기

코딩테스트

[백준 1076번] [JAVA] 저항

728x90

https://www.acmicpc.net/problem/1076

 

1076번: 저항

첫째 줄에 첫 번째 색, 둘째 줄에 두 번째 색, 셋째 줄에 세 번째 색이 주어진다. 위의 표에 있는 색만 입력으로 주어진다.

www.acmicpc.net

문제를 간단히 요약해보자면..

black부터 white까지의 array 중에서 색깔을 차례로 세번 입력받습니다.
(첫번째 색 * 10 + 두번째 색 ) * (10**세번째 색)을 출력해주면 됩니다.

 

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// 입력값을 저장해서 배열에 넣고
		// 색깔은 미리 ArrayList에 넣어둔 후 index값을 이용해 값 출력한다.
		Scanner sc = new Scanner(System.in);
		ArrayList<String> strArr = new ArrayList<>(Arrays.asList("black", "brown", "red", "orange", "yellow", "green", "blue", "violet", "grey", "white"));
		String arr[] = new String[3];

		for (int i = 0; i < 3; i++) {
			arr[i] = sc.next().toLowerCase();
		}
		long fst = strArr.indexOf(arr[0]);
		long scd = strArr.indexOf(arr[1]);
		long mul = (long) Math.pow(10, strArr.indexOf(arr[2]));
		
		long value = (fst*10 + scd) * mul;
		System.out.println(value);
		
	}
}

덧붙이자면..

이번 문제에서 "grey"를 "gray"로 입력하는 실수를 하는 바람에 코드를 계속 수정 제출 수정 제출 하다가

도대체 왜 안되는지 못찾겠을 때 쯤 gray를 발견하게 되었습니다..

꼭 "grey"로 작성하시고 큰 문제 없이 해결하시길 바라겠습니다..