fork download
  1. import java.io.*;
  2. import java.util.Scanner;
  3. import java.lang.Math;
  4.  
  5. class Solution {
  6. static char[] Answer;
  7.  
  8. public static void main(String[] args) throws IOException {
  9. // TODO Auto-generated method stub
  10.  
  11. /*
  12. 아래의 System.setIn 함수는 sample_input.txt 를 read only 형식으로 열어
  13. 표준 입력 스트림으로 redirection 합니다.
  14. 따라서, 키보드를 통한 표준 입력으로 입력 값을 전달하는 대신
  15. sample_input.txt 파일 내에 존재하는 데이터를 표준 입력 스트림으로 전달합니다.
  16. 본 문제에 대한 소스코드를 테스트함에 있어, 원하는 입력 데이터를 sample_input.txt에 저장하여
  17. System.setIn 함수를 이용하면, 표준 입력 (키보드 입력) 대신 sample_input.txt 파일의 데이터가 전달됩니다.
  18. 그러므로 테스트를 수행할 때에는 아래의 System.setIn 함수의 주석을 제거하여 사용할 수 있습니다.
  19. 코드를 제출하실 때에는 반드시 System.setIn 함수를 지우거나 주석 처리 해야합니다.
  20. */
  21. // System.setIn(new FileInputStream("sample_input.txt"));
  22.  
  23. /*
  24. 표준입력 System.in 으로부터 스캐너를 만들어 데이터를 읽어옵니다.
  25. */
  26. Scanner sc = new Scanner(System.in);
  27.  
  28. int T; // 테스트 케이스의 수
  29. int i, l;
  30. String tmp;
  31.  
  32.  
  33. Answer = new char[200];
  34. for(l = 0; l < 200 ; l++)
  35. Answer[l] = 0;
  36.  
  37. /* 테스트 케이스의 수 T */
  38. T = sc.nextInt();
  39. sc.nextLine();
  40.  
  41. /* 각 테스트 케이스에 대한 루프문 */
  42. for(i = 0; i < T; i++)
  43. {
  44.  
  45. /*************************************************************************************/
  46. // 이 곳에 알고리즘을 구현합니다.
  47. // Input 배열에 저장된 입력 데이터에 대한 정답을 Answer 배열에 저장하는 것을 가정합니다.
  48. /*************************************************************************************/
  49.  
  50. tmp = sc.nextLine();
  51. String keystr = tmp.substring(0,3);
  52. int key = 0;
  53. for (int ii =0; ii<3; ii++){
  54. key = key*2 + keystr.charAt(ii)-'0';
  55. //System.out.println(keystr+ " : " + keystr.charAt(ii)+ " : " + (keystr.charAt(ii)-'0'));
  56. }
  57. //System.out.println(keystr+ " : " + key);
  58. tmp = tmp.substring(3);
  59. for ( int ii =0; ii<tmp.length()/8;ii++)
  60. {
  61.  
  62. for (int j = ii*8 ; j < (ii+1)*8; j++){
  63. Answer[ii] = (char)((int)Answer[ii]*2 + (int)(tmp.charAt(j)-'0'));
  64. }
  65. Answer[ii] = (char)((int)Answer[ii]-key+(int)'A');
  66. }
  67.  
  68. /* 출력부분 */
  69. System.out.printf("#%d ", i+1);
  70. tmp = new String(Answer,0,Answer.length);
  71. System.out.printf("%s\n",tmp);
  72. for(l = 0; l < 200 ; l++)
  73. Answer[l] = 0;
  74. }
  75. }
  76. }
Success #stdin #stdout 0.1s 381696KB
stdin
10
1000000010000010011000100110000111100001000
000000000010000000000001101000000000000110100000000
0100000110000010000000100110000011000000010
110000101000001011100000110000100110000110000001010
01100010010000101000001000100001001000101000000001100001111
00100010110000010010000001100010100000011110001001000011001
1010000110000001001000100000001000000010011
01000001101000100000001011100000110
1110000011100001000000010010000101000001011000011000000110100001110000011110001000000010001000100100001001100010100000101010001011000010111000110000001100100011010000110110001110000011101000111100001111100100000
01100010101000000110000111100010101000101110001000000001001
stdout
#1 APPLE
#2 BANANA
#3 KOREA
#4 ORANGE
#5 PROGRAM
#6 VICTORY
#7 HELLO
#8 LOVE
#9 ABCDEFGHIJKLMNOPQRSTUVWXYZ
#10 SAMSUNG