문제
해결 방안 고민
•
문어 숫자라고 하여 특정 숫자를 문자로 표현하여 계산해야 하는 문제이다.
•
각 문자별로 인덱스 매칭을 시켜주는 것을 고민하였다.
해결 방법
•
문자 배열, 정수 배열을 만들었다.
•
입력한 문자열의 문자들을 문어 숫자의 문자들과 비교하여 같으면 문제의 조건에서 주어진 식대로 계산할 수 있도록 하였다.
•
8의 제곱을 해야 함과 동시에 순차적으로 감소하는 pow 변수를 선언하였다.
코드
package algo250330;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
// 백준 - 문어 숫자 (브론즈 2)
public class Baek1864 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
char[] arr = {'-', '\\', '(', '@', '?', '>', '&', '%', '/'};
int[] numArr = {0, 1, 2, 3, 4, 5, 6, 7, -1};
while (true) {
String str = br.readLine();
// "#" 이면 break
if (str.equals("#")) {
break;
}
int length = str.length();
double pow = length - 1;
int sum = 0;
for (int i = 0; i < length; i++) {
for (int j = 0; j < arr.length; j++) {
if (str.charAt(i) == arr[j]) {
sum += (int) (numArr[j] * Math.pow(8, pow));
pow--;
}
}
}
System.out.println(sum);
}
}
}
Java
복사