[BaekJoon] 1076번: 저항 (Java)
main() 메서드
BufferedReader로 세가지 컬러를 입력받아서 String 변수에 저장한다.
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String first = br.readLine();
String second = br.readLine();
String third = br.readLine();
br.close();
}
solution() 메서드
long형 변수 answer를 선언하고 표의 순서대로 List<>
형 배열에 나열한다.
static long solution(String first, String second, String third) {
long answer = 0;
List<String> colorList = new ArrayList<>(Arrays.asList("black", "brown",
"red", "orange", "yellow", "green", "blue", "violet", "grey", "white"));
return answer = 0;
}
처음에는 contain()
메서드와 for문을 쓰려고 생각했지만 indexOf()
메서드로
내가 찾는 변수가 몇번째인지 알기만 하면 되기 때문에 이렇게 작성했다. first 변수에는 십의 자리를 만들기 위해 10L(long형)을 곱해주었고 second 변수는 일의 자리기 때문에 그냥 더해주었다. third 변수에는 Math.pow()
메서드를 사용해 10의 거듭제곱을 곱해주면 된다. 이 모든 건 값과 곱 모두 순서대로 일어났기 때문에 가능한 구현이다.
answer += colorList.indexOf(first) * 10L; // 10의 자리
answer += colorList.indexOf(second);
answer *= Math.pow(10, colorList.indexOf(third));
실행 결과
소스코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class B1076 {
static long solution(String first, String second, String third) {
long answer = 0;
List<String> colorList = new ArrayList<>(Arrays.asList("black", "brown",
"red", "orange", "yellow", "green", "blue", "violet", "grey", "white"));
answer += colorList.indexOf(first) * 10L; // 10의 자리
answer += colorList.indexOf(second);
answer *= Math.pow(10, colorList.indexOf(third));
return answer;
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String first = br.readLine();
String second = br.readLine();
String third = br.readLine();
System.out.print(solution(first, second, third));
br.close();
}
}
Leave a comment