백준 1706 크로스워드 자바

꾸준하게 달리기~·2023년 6월 26일
0
post-thumbnail

문제는 다음과 같다.
https://www.acmicpc.net/problem/1706


풀이는 다음과 같다.

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        StringTokenizer st1 = new StringTokenizer(br.readLine());
        int R = Integer.parseInt(st1.nextToken());
        int C = Integer.parseInt(st1.nextToken());
        String[][] map = new String[R][C]; //입력 넣어줄것

        for (int r = 0 ; r < R ; r++) {
            String row = br.readLine();
            for(int c = 0 ; c < C ; c++) {
                map[r][c] = row.substring(c, c+1);
            }
        }

        //여기까지 오면 map 다 참

        ArrayList<String> words = new ArrayList<>(); //map 의 모든 단어들 넣어줄 ArrayList
        //행렬별로 # 를 기준으로 String 배열을 만든 후, 
        //배열을 순회하며 String 길이가 1보다 길면 words 에 넣어줄것.
        //map 의 단어 전부 words 에 넣은 후, 정렬을 통해 가장 앞의 원소 출력

        for(int r = 0 ; r < R ; r++) {
            String row = "";
            for(int c = 0 ; c < C ; c++) {
                row += map[r][c];
            }

            //여기까지 오면 row = 한 행.
            String[] arr = row.split("#");

            for(int i = 0 ; i < arr.length ; i++) {
                if(arr[i].length() > 1) words.add(arr[i]);
            }
        }

        for(int c = 0 ; c < C ; c++) {
            String column = "";
            for(int r = 0 ; r < R ; r++) {
                column += map[r][c];
            }

            //여기까지 오면 column = 한 열.
            String[] arr = column.split("#");

            for(int i = 0 ; i < arr.length ; i++) {
                if(arr[i].length() > 1) words.add(arr[i]);
            }
        }

        Collections.sort(words);

        bw.write(words.get(0));
        bw.flush();
        bw.close();

    }

}

특별한 내용은 없고,
링크를 타고 들어가서 문제를 자세히 읽었다면
주석을 통해 이해할 수 있을 난이도이다.

profile
반갑습니다~! 좋은하루 보내세요 :)

0개의 댓글