티스토리 뷰
이런 문젠데 문제 설명은 머리가 어지러워서 못하겠다...
쨌든 이 문제를 하는데 문제만 봤을땐 쉬워보여서 빨리 해치우고 다음꺼 해야겠다 ~ 했는데 하다보니 너무너무 헷갈리고 복잡했다. 내가 고작 이런문제에 애먹는다고? 화가 나서 이걸 풀고야 말겠다 하고 하다가 결국 비슷하게는 만들었는데
정답은 아니다. 왜냐면 답이 나오긴 하지만 순서가 좀 다르게 나오기 때문이다.
오늘 원래 공부계획을 꽤 많이 잡았는데 고작 이런 문제에 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();
}
*/
}
}
감사합니다....
(역대급으로 힘들었음...넘사벽으로 어려우면 안하고 딴거 먼저 하면 그만인데 뭔가 될듯 안될듯해서 짜증났다...)
'고뇌' 카테고리의 다른 글
코드를 칠때마다 값이 달라지는 진귀한 현상 (0) | 2022.06.12 |
---|---|
왜지!? 스타그래프트 게임? (0) | 2022.06.12 |
html 공부중 .. (0) | 2022.05.29 |
JAVA : interface와 추상화 클래스 공부 중 ... !! (0) | 2022.05.27 |
자바 원숭이 물건 돌리기 게임 미치것다 (0) | 2022.05.26 |
댓글