結果
| 問題 | 
                            No.18 うーさー暗号
                             | 
                    
| コンテスト | |
| ユーザー | 
                             | 
                    
| 提出日時 | 2016-04-30 02:46:17 | 
| 言語 | Java  (openjdk 23)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 181 ms / 5,000 ms | 
| コード長 | 701 bytes | 
| コンパイル時間 | 3,520 ms | 
| コンパイル使用メモリ | 77,628 KB | 
| 実行使用メモリ | 54,336 KB | 
| 最終ジャッジ日時 | 2024-07-07 06:08:08 | 
| 合計ジャッジ時間 | 6,547 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge1 / judge2 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 13 | 
ソースコード
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class no18 {
	public static void main(String[] args) {
		String[] az = {"A","B","C","D","E","F","G","H","I","J","K","L","M","N",
					   "O","P","Q","R","S","T","U","V","W","X","Y","Z"};
		Scanner sc = new Scanner(System.in);
		Map<String,Integer> map = new HashMap<String,Integer>();
		for (int i = 0; i < az.length; i++) {
			map.put(az[i],i);
		}
		String s = sc.next();
		int N = 0;
		int azidx = 0;
		for (int i = 0 ; i < s.length(); i++) {
			azidx = map.get(String.valueOf(s.charAt(i))) - (i + 1) % 26;
			if (azidx < 0) {
				N = 26 + azidx;
			} else {
				N = azidx;
			}
			System.out.print(az[N]);
		}
	}
}