백준(Backjoon) 1076, 저항
2021. 7. 2. 11:06ㆍCodingTest
문제풀이
색의 저항값과 곱의 관계는 10의 제곱으로 표현이 가능하다.
색의 곱 = 10^색의 저항값
위의 문제를 해결하기 위하여 JAVA언어의 enum 열거형을 사용하였고 처음 두 색상의 저항값들을 문자열로 연결한 다음 정수형으로 변환하고 마지막 색상의 곱과 곱하여 값을 도출할 수 있었다. 여기서 주의할 점은 최종 결과값의 타입을 int 타입이 아닌 long 타입으로 설정하였다. 왜냐하면 white, white, white와 같은 저항이 입력된다면 int타입으로는 값을 표현할 수 없기 때문이다.
소스코드
public class Main {
private enum electrical {black, brown, red, orange, yellow, green, blue, violet, grey, white};
public static long solution(List<String> list)
{
String value = "";
long answer = 0;
for(int i=0;i<list.size();i++)
{
if(i>=list.size()-1)
{
// 저항의 마지막 색의 곱 = 10^색의값
answer = (long) (Integer.parseInt(value)*Math.pow(10, electrical.valueOf(list.get(i)).ordinal()));
}
else
{
value += electrical.valueOf(list.get(i)).ordinal();
}
}
return answer;
}
public static void main(String args[]) throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
List<String> list = new ArrayList<>();
for(int i=0;i<3;i++)
{
list.add(br.readLine());
}
System.out.println(solution(list));
}
}
'CodingTest' 카테고리의 다른 글
백준(Backjoon) 1026, 보물 (0) | 2021.07.06 |
---|---|
백준(Backjoon) 11655, ROT13 (0) | 2021.07.05 |
백준(Backjoon) 10798, 세로읽기 (0) | 2021.06.30 |
백준(Backjoon) 10816, 숫자 카드 2 (0) | 2021.06.28 |
백준(Backjoon) 2164, 카드2 (0) | 2021.06.25 |