Blue___
코딩배우는 학생🌎
Blue___
전체 방문자
오늘
어제
  • 코딩배우는 학생🧀 (242)
    • Algorithms (145)
      • BOJ[Java] (107)
      • Programmers[Java] (32)
      • Coding_Contest (3)
    • Web (22)
      • .NET Core C# (2)
      • Java (1)
      • Oracle SQL (7)
      • Web-ProJect (3)
      • Error처리 (1)
      • Web지식 (4)
      • Javascript (1)
      • Vue (3)
    • Git (4)
    • Java_beginner(Repl.it) (55)
      • Auto-Graded-Course(AP CS A) (54)
    • 프로젝트 직딩일기 (3)
    • Hanyang_Assignment (0)
    • 이모저모 (4)
      • 잡담 (1)
      • 2021 오픈소스 컨트리뷰터 아카데미 (1)
      • DDD - 6기! (1)
    • 북리뷰 (1)
      • 리팩토링 2판 (1)
      • 클린코드 (0)

블로그 메뉴

  • 🐰GITHUB
  • ☘️포트폴리오
  • 🌸MBC개발_투표 2022
  • 🍭MBC_APP

공지사항

인기 글

태그

  • repl.it
  • coding
  • REPL
  • Java tutorial
  • auto-graded course
  • algorithm
  • 프로그래밍
  • 백준
  • Bakjoon
  • Java
  • 코딩
  • programmers
  • 프로그래머스
  • 코딩배우는학생
  • java basic
  • 코딩배우는 학생
  • 자바
  • 알고리즘
  • 레플릿
  • AP CS A

최근 댓글

최근 글

티스토리

hELLO
Blue___

코딩배우는 학생🌎

[백준/1864번] 문어 숫자(NZPC 2006) [Java]
Algorithms/BOJ[Java]

[백준/1864번] 문어 숫자(NZPC 2006) [Java]

2020. 1. 1. 02:18

문제

해류가 매우 느리고 바닥을 기어다니는 생물이 적은 바다 밑바닥에서만 발견되는 잔물결 무늬의 정체는 오랫동안 해양학자들에게 수수께끼였다. 하지만 최근의 연구 성과는 동물 언어학 분야에 일대 혁명을 불러왔다. 이 무늬의 정체는 바로 문어가 숫자를 적는 방법이라는 것이 해양 생물학자들에 의해 밝혀진 것이다. 학자들은 문어가 무엇을 세는 것인지는 아직 알 수 없지만, 수 표기법을 해독하는 데에는 성공했다.

뭍 위에 사는 이들에게는 문어가 쓰는 숫자와 그를 표현하는 잔물결 무늬가 매우 낯설 수밖에 없다. 따라서 연구자들은 다음과 같은 기호로 잔물결 무늬를 적기로 합의했다. 각 기호와 대응하는 숫자는 다음과 같다.

  • -는 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
import java.util.*;
import javax.swing.text.AbstractDocument.BranchElement;
import java.io.*;
 
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; 
                        
                    }
                    sum+=temp*Math.pow(8, input.length()-1-cnt);                
                    cnt++;
                }
            }
            bw.write(sum+"\n");
            cnt=0;
            sum=0;
        }
        bw.flush();
        bw.close();
      
}
}    
 
 
 
 

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

 

1864번: 문어 숫자

문제 해류가 매우 느리고 바닥을 기어다니는 생물이 적은 바다 밑바닥에서만 발견되는 잔물결 무늬의 정체는 오랫동안 해양학자들에게 수수께끼였다. 하지만 최근의 연구 성과는 동물 언어학 분야에 일대 혁명을 불러왔다. 이 무늬의 정체는 바로 문어가 숫자를 적는 방법이라는 것이 해양 생물학자들에 의해 밝혀진 것이다. 학자들은 문어가 무엇을 세는 것인지는 아직 알 수 없지만, 수 표기법을 해독하는 데에는 성공했다. 뭍 위에 사는 이들에게는 문어가 쓰는 숫자와 그를

www.acmicpc.net

 

반응형
저작자표시 (새창열림)

'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
    'Algorithms/BOJ[Java]' 카테고리의 다른 글
    • [백준/2744번] 대소문자 바꾸기[Java기초]
    • [백준/2566번] 최댓값 [Java]
    • [백준/7568번] 덩치(한국정보올림피아드 2013)[Java]
    • [백준/2751번] 수 정렬하기 2 [Java]
    Blue___
    Blue___
    완전 연소한 불은 재를 남기지않는다 : 코딩배우는학생 🌎

    티스토리툴바