[伯俊]5622番ダイヤル-JAVA
5166 ワード
[伯俊]5622番ダイヤルを解く
尚根のおばあさんは古いダイヤルを使っています.下図のように.
電話をかけたい番号があれば、数字を押して時計回りに金属カードのあるところに回転しなければなりません.1つの数字を押して最初の位置に戻り、1つの数字を押すには最初の位置から再ダイヤルする必要があります.
数字1は全部で2秒かかります.1より大きい数字を賭けるのにかかる時間はこれよりも長く、1つの格のそばの数字を賭けるのに1秒かかります.
尚根のおばあさんは電話番号をそれぞれの数字に対応する文字に暗記した.つまり、ある言葉を打つと、アルファベットごとに対応する数字を打つことができます.例えば、UNUCICは868242に等しい.
おばあちゃんに覚えた単語をあげたとき、この電話をかけるのに最小限の時間を見つけるプログラムを書きます.
最初の行には、アルファベットの大文字からなる単語が表示されます.単語の長さは2以上、15以下です.
最初の行のダイヤルアップに要する最小時間を出力します.
WA
13
UNUCIC
36
質問する
尚根のおばあさんは古いダイヤルを使っています.下図のように.
電話をかけたい番号があれば、数字を押して時計回りに金属カードのあるところに回転しなければなりません.1つの数字を押して最初の位置に戻り、1つの数字を押すには最初の位置から再ダイヤルする必要があります.
数字1は全部で2秒かかります.1より大きい数字を賭けるのにかかる時間はこれよりも長く、1つの格のそばの数字を賭けるのに1秒かかります.
尚根のおばあさんは電話番号をそれぞれの数字に対応する文字に暗記した.つまり、ある言葉を打つと、アルファベットごとに対応する数字を打つことができます.例えば、UNUCICは868242に等しい.
おばあちゃんに覚えた単語をあげたとき、この電話をかけるのに最小限の時間を見つけるプログラムを書きます.
入力
最初の行には、アルファベットの大文字からなる単語が表示されます.単語の長さは2以上、15以下です.
しゅつりょく
最初の行のダイヤルアップに要する最小時間を出力します.
入力例1
WA
サンプル出力1
13
入力例2
UNUCIC
サンプル出力2
36
マイコード
java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
char cArr[] = scan.nextLine().toCharArray();
int answer = 0; // 시간
for(char a : cArr) {
if(a == 'S' || a== 'V' || a == 'Y' || a == 'Z') { // 예외처리
answer += (a - 'A') / 3 + 2;
} else {
answer += (a - 'A') / 3 + 3;
}
}
System.out.println(answer);
}
}
Reference
この問題について([伯俊]5622番ダイヤル-JAVA), 我々は、より多くの情報をここで見つけました https://velog.io/@seobob/백준-5622번-다이얼-JAVAテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol