끄적끄적 코딩
article thumbnail

6개의 문자중 3개를 선택하는 조합으로 3줄을 만들고
나머지 3개의 문자가 세로로 존재하는지 확인해주는 방식으로 문제를 해결하였습니다.

Arrays.sort()함수를 통해서 정렬을 해주어서 답이 여러개일 경우 가장 빠른 단어로 나열해주었습니다.

import java.util.*;

public class Main {
  public static void main(String argc[]){
    Scanner sc = new Scanner(System.in);
    String[] arr = new String[6];
    boolean[] visit = new boolean[6];
    boolean[] visit2 = new boolean[3];
    int chk;
    String[] s = new String[3];
    String[] s2 = new String[3];

    for(int i=0; i<6; ++i){
      arr[i] = sc.next();
    }
    Arrays.sort(arr);

    for(int i=0; i<6; ++i){
      visit[i] = true;
      s[0] = arr[i];
      for(int j=0; j<6; ++j){
        if(visit[j]){
          continue;
        }
        s[1] = arr[j];
        visit[j] = true;
        for(int k=0; k<6; ++k){
          if(visit[k]){
            continue;
          }
          visit[k] = true;
          s[2] = arr[k];
          s2[0] = "";
          s2[1] = "";
          s2[2] = "";
          s2[0] += s[0].charAt(0);
          s2[0] += s[1].charAt(0);
          s2[0] += s[2].charAt(0);
          s2[1] += s[0].charAt(1);
          s2[1] += s[1].charAt(1);
          s2[1] += s[2].charAt(1);
          s2[2] += s[0].charAt(2);
          s2[2] += s[1].charAt(2);
          s2[2] += s[2].charAt(2);
          Arrays.sort(s2);
          
          chk = 0;
          visit2[0] = false;
          visit2[1] = false;
          visit2[2] = false;
    
          for(int l=0; l<6; ++l){
            if(visit[l]){
              continue;
            }
            for(int m=0; m<3; ++m){
              if(visit2[m]) {
              	continue;
              }
              if(arr[l].equals(s2[m])){
                visit2[m] = true;
                ++chk;
                break;
              }
            }
          }
          if(chk == 3){
            System.out.printf("%s%n%s%n%s%n", s[0], s[1], s[2]);
            return;
          }
          visit[k] = false;
        }
        visit[j] = false;
      }
      visit[i] = false;
    }
    System.out.printf("0");
  }
}

'알고리즘' 카테고리의 다른 글

[Java] 백준 15683번 감시  (0) 2023.01.24
[Java] 백준 17478번 재귀함수가 뭔가요?  (0) 2023.01.24
[Java] 백준 13458번 시험 감독  (0) 2023.01.24
[Java] 백준 6603번 로또  (0) 2023.01.24
[Java] 백준 15650번 N과 M (2)  (0) 2023.01.23

검색 태그