티스토리 뷰

이런 문젠데 문제 설명은 머리가 어지러워서 못하겠다...

쨌든 이 문제를 하는데 문제만 봤을땐 쉬워보여서 빨리 해치우고 다음꺼 해야겠다 ~ 했는데 하다보니 너무너무 헷갈리고 복잡했다. 내가 고작 이런문제에 애먹는다고? 화가 나서 이걸 풀고야 말겠다 하고 하다가 결국 비슷하게는 만들었는데 

정답은 아니다. 왜냐면 답이 나오긴 하지만 순서가 좀 다르게 나오기 때문이다.

오늘 원래 공부계획을 꽤 많이 잡았는데 고작 이런 문제에 2시간을 쓸줄 몰랐다. 그냥 킵해놓고 진도나 나가고 복습이나 할걸..... 그래도 좋은 싸움이었다... 나중에 다시 이 문제를 제대로 파봐야겠다.

 

 

 

2시간의 사투 끝에 최대한 정답이 가깝게 짠 나의 코드

* 정답은 아니다. 출력이 아까 말했다시피 순서가 좀 섞여서 나오게 됨.

package NewProject;

import java.util.Random;
import java.util.Scanner;

class Game{
   Scanner sc = new Scanner(System.in);
   
   char[][] array = new char[4][3];
   String[][] alpabet = new String[4][3];
   
   Game() {
      //기본적인 전체 숫자 틀 생성자로 만들기
      int k1 = -1;
      char[] number= {'1','2','3','4','5','6','7','8','9'};
      for(int i=0;i<3;i++) {
         for(int j=0;j<3;j++) {
            k1 ++;
            array[i][j] = number[k1];
         }
      }
      array[3][0] = '*'; array[3][1] = '0'; array[3][2] = '#';
      
      //기본적인 전체 알파벳 틀 생성자로 만들기
      int k2 = -1;
      String[] alpa = {"ABC","DEF","GHI","JKL","MNO","PQR","STU","VWX","Y","*","Z","#"};
      
      for(int i=0;i<alpabet.length;i++) {
         for(int j=0;j<alpabet[i].length;j++) {
            k2 ++;
            alpabet[i][j] = alpa[k2];
         }
      }
      
      
      
   }
   //입력
   public String input() {
      String munja = sc.next();
      return munja;
   }
   
   //연산작업
   public int[][] yunsan(String munja) {
      int[][] check = new int[4][3];
      
      
      for(int i=0;i<munja.length();i++) { //입력한 문자의 길이 만큼  for문 돌림
         
         char a = munja.charAt(i);
         
         for(int j = 0;j<array.length;j++) {
            
            for(int k = 0;k<array[j].length;k++) {
               
               if(array[j][k] == a) {
                  
                  check[j][k] += 1;
               }
               
            }
         }
      }
      return check;
      
   }
   
   //출력
   public void print(int[][] check) {
       for(int i=0;i<check.length;i++) {
          for(int j=0;j<check[i].length;j++) {
             int a = (check[i][j])-1; //ex) 1자리에 2라는 숫자가 있다.
             if(!(a < 0)) {
                char b = alpabet[i][j].charAt(a); //그러면 1자리에 있는 알바벳중에 2-1인덱스를 뽑아온다
                System.out.print(b);
             }

          }
       }
   }
   
   
}



public class Q1 {
   public static void main(String[] args) {
      
      Game g = new Game();

      String munja = g.input();
      int[][] check = g.yunsan(munja);
      for(int i=0;i<check.length;i++) {
         for(int j=0;j<check[i].length;j++) {
            System.out.print(check[i][j] + "\t");
         }
         System.out.println();
      }
      g.print(check);
      
      
      
      
      
      //g.print(check);
      
/*      for(int i=0;i<array.length;i++) {
         for(int j=0;j<array[i].length;j++) {
            System.out.print(array[i][j] + "\t");
         }
         System.out.println();
      }
      
      System.out.println();
      
      for(int i=0;i<alpa.length;i++) {
         for(int j=0;j<alpa[i].length;j++) {
            System.out.print(alpa[i][j] + "\t");
         }
         System.out.println();
      }
      */
      
      
      


   }
}

 

감사합니다....

 

(역대급으로 힘들었음...넘사벽으로 어려우면 안하고 딴거 먼저 하면 그만인데 뭔가 될듯 안될듯해서 짜증났다...)

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/05   »
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
글 보관함