문제
해류가 매우 느리고 바닥을 기어다니는 생물이 적은 바다 밑바닥에서만 발견되는 잔물결 무늬의 정체는 오랫동안 해양학자들에게 수수께끼였다. 하지만 최근의 연구 성과는 동물 언어학 분야에 일대 혁명을 불러왔다. 이 무늬의 정체는 바로 문어가 숫자를 적는 방법이라는 것이 해양 생물학자들에 의해 밝혀진 것이다. 학자들은 문어가 무엇을 세는 것인지는 아직 알 수 없지만, 수 표기법을 해독하는 데에는 성공했다.
뭍 위에 사는 이들에게는 문어가 쓰는 숫자와 그를 표현하는 잔물결 무늬가 매우 낯설 수밖에 없다. 따라서 연구자들은 다음과 같은 기호로 잔물결 무늬를 적기로 합의했다. 각 기호와 대응하는 숫자는 다음과 같다.
- -는 0에 대응한다.
- \는 1에 대응한다.
- (는 2에 대응한다.
- @는 3에 대응한다.
- ?는 4에 대응한다.
- >는 5에 대응한다.
- &는 6에 대응한다.
- %는 7에 대응한다.
- /는 -1에 대응한다.
해양 신경학자들은 특히 음수를 나타내는 기호가 있다는 사실에 흥분하면서, 아직 걸음마 단계인 두족류 신경학이 이 발견을 계기로 크게 발전하기를 기대하고 있다.
당연히 문어의 수 체계는 8진법에 기반한다. 예를 들면 다음과 같다.
(@&는 2 × 82 + 3 × 8 + 6 = 158이다.
?/--는 4 × 83 + −1 × 82 + 0 × 8 + 0 = 1984이다.
/(\는 −1 × 82 + 2 × 8 + 1 = −47이다.
당신에게 주어진 문제는 문어 숫자를 입력 받아 십진수로 나타내는 것이다.
입력
한 줄에 하나씩 문어 숫자가 입력으로 주어진다. 각 숫자는 최소 한 개, 최대 여덟 개의 문어 숫자 기호로 이루어져있다. 입력으로 '#'이 들어오면 입력을 종료한다.
출력
입력 받은 문어 숫자에 대응하는 십진수를 한 줄에 하나씩 출력한다.
풀이
어떻게 방법이 없이 하나하나 기호값에 따라 지정된 값을 switch문을 통해서 구분해 주었다. 이후 자릿수가 올라갈수록 제곱값이 작아지므로 cnt를이용해 풀어주었다. 간단한 문제. ㅇㅅㅇ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
public class Main {
public static void main(String args[]) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int cnt=0;
int sum=0;
while(true) {
String input =br.readLine();
if(input.equals("#")) {
break;
}
else {
for(int i=0;i<input.length();i++) {
int temp=0;
switch(input.charAt(i)) {
case '-':
temp=0; break;
case '\\':
temp=1; break;
case '(':
temp=2; break;
case '@':
temp=3; break;
case '?':
temp=4; break;
case '>':
temp=5; break;
case '&':
temp=6; break;
case '%':
temp=7; break;
case '/':
temp=-1;
}
cnt++;
}
}
cnt=0;
sum=0;
}
}
}
|
https://www.acmicpc.net/problem/1864
'Algorithms > BOJ[Java]' 카테고리의 다른 글
[백준/2744번] 대소문자 바꾸기[Java기초] (0) | 2020.01.05 |
---|---|
[백준/2566번] 최댓값 [Java] (0) | 2020.01.03 |
[백준/7568번] 덩치(한국정보올림피아드 2013)[Java] (0) | 2019.12.27 |
[백준/2751번] 수 정렬하기 2 [Java] (0) | 2019.12.26 |
[백준/18229번]내가 살게, 아냐 내가 살게(인천대 INU 송년 코드페스티벌 2019) [Java] (0) | 2019.12.25 |