白駿Baekjoon 1864タコ数字-JAVA
https://www.acmicpc.net/problem/1864
質問する
長い間、海流が遅く、底生生物が少ない海底でしか発見されなかった波紋の正体は、海洋学者たちの謎だった.しかし、最近の研究成果は動物言語学分野の革命を引き起こした.海洋生物学者は、この模様の正体がタコが数字を書く方法であることを発見した.学者たちはタコが何を数えているのかまだ知らないが、数表法の解読に成功した.
陸上に暮らす人々にとって、タコが使う数字とその波紋を表現する図案はよく知られていない.そのため、研究者たちは以下の記号で波紋を記録することに同意した.各記号に対応する数字は次のとおりです.
-0に対応します.
は1に対応します.
(2に対応します.
@は3に対応します.
?4に対応します.
5に対応します.
&対応6.
%は7に対応する.
/対応-1.
海洋神経学者たちは特に興奮して飲料水の嗜好を発見し、まだスタート段階にある頭足類神経学がこの発見をきっかけに成長することを期待している.
もちろん、タコの水系は8進法に基づいています.例:
(@&は2× 82 + 3 × 8+6=158.
?/--を選択).× 83 + −1 × 82 + 0 × 8+0=1984.
\× 82 + 2 × 8+1=47です.
あなたに質問するのはタコの数字を入力して、10進数で表します.
入力
各行にタコの数字を入力します.各数字は少なくとも1つ、最大8つのタコ数字記号から構成されている.「#」を入力すると、入力を終了します.
しゅつりょく
各行に入力されたタコの数字に対応する10進数を出力します.
入力例1説明 javaは(反スラッシュ)を読めません.だからマークで読めるのは です Math.pow(8,n)を用いて平方数 を実現した.
質問する
長い間、海流が遅く、底生生物が少ない海底でしか発見されなかった波紋の正体は、海洋学者たちの謎だった.しかし、最近の研究成果は動物言語学分野の革命を引き起こした.海洋生物学者は、この模様の正体がタコが数字を書く方法であることを発見した.学者たちはタコが何を数えているのかまだ知らないが、数表法の解読に成功した.
陸上に暮らす人々にとって、タコが使う数字とその波紋を表現する図案はよく知られていない.そのため、研究者たちは以下の記号で波紋を記録することに同意した.各記号に対応する数字は次のとおりです.
-0に対応します.
は1に対応します.
(2に対応します.
@は3に対応します.
?4に対応します.
5に対応します.
&対応6.
%は7に対応する.
/対応-1.
海洋神経学者たちは特に興奮して飲料水の嗜好を発見し、まだスタート段階にある頭足類神経学がこの発見をきっかけに成長することを期待している.
もちろん、タコの水系は8進法に基づいています.例:
(@&は2× 82 + 3 × 8+6=158.
?/--を選択).× 83 + −1 × 82 + 0 × 8+0=1984.
\× 82 + 2 × 8+1=47です.
あなたに質問するのはタコの数字を入力して、10進数で表します.
入力
各行にタコの数字を入力します.各数字は少なくとも1つ、最大8つのタコ数字記号から構成されている.「#」を入力すると、入力を終了します.
しゅつりょく
各行に入力されたタコの数字に対応する10進数を出力します.
入力例1
(@&
?/--
/(\
?
#
サンプル出力1158
1984
-47
4
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
Map<String, Integer> map = new HashMap<>();
map.put("-", 0);
map.put("\\", 1);
map.put("(", 2);
map.put("@", 3);
map.put("?", 4);
map.put(">", 5);
map.put("&", 6);
map.put("%", 7);
map.put("/", -1);
while (true) { // 라인별 접근을 위한 순한
String N = sc.nextLine(); // 라인별 접근
if (N.equals("#")) // 만약 0이라면
System.exit(0); // 시스템 강제 종료 코드
String[] arr = N.split(""); // 해당 문자열 한글자씩 배열 생성
int sum = 0;
int num = 0;
for (int i = 0; i < arr.length; i++) {
sum += map.get(arr[i]) * Math.pow(8, arr.length - 1 - i);
}
System.out.println(sum);
// 2022-05-02~2022-05-08.md
}
}
}
Reference
この問題について(白駿Baekjoon 1864タコ数字-JAVA), 我々は、より多くの情報をここで見つけました https://velog.io/@chamominedev/baekjoon-java-1864-문어-숫자テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol