이 영역을 누르면 첫 페이지로 이동
천천히 꾸준히 조용히 블로그의 첫 페이지로 이동

천천히 꾸준히 조용히

페이지 맨 위로 올라가기

천천히 꾸준히 조용히

천천히 꾸준히 조용히.. i3months 블로그

[백준] 1706 크로스워드 - Java

  • 2022.03.02 14:35
  • Algorithm/Baekjoon
반응형

 

 

 

지난번에 풀었던 경사로 문제와 비슷한 문제이다.

 

이차원 배열을 사용해 크로스워드 퍼즐을 구현하고, 조건에 맞춰 가로 단어와 세로 단어를 구해낸 다음 정렬을 진행한다.

 

풀이 로직은 다음과 같다.

 

1. 배열을 하나씩 반복하면서 현재 탐색하는 원소가 #가 아닌 경우 seq변수를 1 추가한다. (단어가 몇 번 연속되는지 확인)

 

2. #를 만나거나 행의 끝에 도달했을 때 seq변수가 2이상이면 (두 번 이상 연속됐으면) 정답을 갱신한다.

 

3. row방향으로, column방향으로 한 번씩 갱신한다.

 

 

Java

 

 

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));
		StringBuilder sb = new StringBuilder();

		StringTokenizer st = new StringTokenizer(br.readLine(), " ");
		int R = Integer.parseInt(st.nextToken());
		int C = Integer.parseInt(st.nextToken());

		char[][] crossword = new char[R][C];

		for(int i=0; i<R; i++){
			String str = br.readLine();
			for(int j=0; j<C; j++){
				crossword[i][j] = str.charAt(j);
			}
		}

		ArrayList<String> dict = new ArrayList<>();

		for(int i=0; i<R; i++){
			int seq = 0;
			String str = "";
			for(int j=0; j<C; j++){
				if(crossword[i][j] != '#'){
					seq++;
					str = str + crossword[i][j];
				}else if(crossword[i][j] == '#'){
					if(seq >=2){
						dict.add(str);
					}
					str = "";
					seq = 0;
				}

				if(j == C-1){
					if(seq>=2){
						dict.add(str);
					}
				}

			}
		} // row에 대해서 조사

		for(int j=0; j<C; j++){
			int seq = 0;
			String str = "";
			for(int i=0; i<R; i++){
				if(crossword[i][j] != '#'){
					seq++;
					str = str + crossword[i][j];
				}else if(crossword[i][j] == '#'){
					if(seq >=2){
						dict.add(str);
					}
					str = "";
					seq = 0;
				}

				if(i == R-1){
					if(seq>=2){
						dict.add(str);
					}
				}

			}
		} // column에 대해서 조사

		Collections.sort(dict);

		System.out.println(dict.get(0));

	}
}
반응형

'Algorithm > Baekjoon' 카테고리의 다른 글

[백준] 15651 N과 M (3) - Java  (0) 2022.03.05
[백준] 3987 보이저 1호 - Java  (0) 2022.03.04
[백준] 17299 오등큰수 -Java  (1) 2022.03.02
[백준] 14890 경사로 -Java  (0) 2022.03.01
[백준] 15683 감시 -Java  (0) 2022.02.21

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • [백준] 15651 N과 M (3) - Java

    [백준] 15651 N과 M (3) - Java

    2022.03.05
  • [백준] 3987 보이저 1호 - Java

    [백준] 3987 보이저 1호 - Java

    2022.03.04
  • [백준] 17299 오등큰수 -Java

    [백준] 17299 오등큰수 -Java

    2022.03.02
  • [백준] 14890 경사로 -Java

    [백준] 14890 경사로 -Java

    2022.03.01
다른 글 더 둘러보기

정보

천천히 꾸준히 조용히 블로그의 첫 페이지로 이동

천천히 꾸준히 조용히

  • 천천히 꾸준히 조용히의 첫 페이지로 이동

검색

방문자

  • 전체 방문자
  • 오늘
  • 어제

카테고리

  • 분류 전체보기 (683)
    • Algorithm (205)
      • Data Structure (5)
      • Theory && Tip (33)
      • Baekjoon (166)
      • ALGOSPOT (1)
    • Spring (123)
      • Spring (28)
      • Spring Web MVC (20)
      • Spring Database (14)
      • Spring Boot (6)
      • Spring 3.1 (11)
      • Spring Batch (6)
      • Spring Security (16)
      • JPA (12)
      • Spring Data JPA (5)
      • QueryDSL (4)
      • eGovFramework (1)
    • Programming Language (74)
      • C (25)
      • C++ (12)
      • Java (19)
      • JavaScript (15)
      • Python (1)
      • PHP (2)
    • Computer Science (143)
      • Machine Learning (38)
      • Operating System (18)
      • Computer Network (28)
      • System Programming (22)
      • Universial Programming Lang.. (8)
      • Data Science (1)
      • Computer Architecture (4)
      • Compiler Design (11)
      • Computer Security (13)
    • Database (21)
      • Database (7)
      • MySQL (3)
      • Oracle (3)
      • Redis (5)
      • Elasticsearch (3)
    • DevOps (20)
      • Docker && Kubernetes (8)
      • Jenkins (4)
      • Amazon Web Service (8)
    • Mobile (28)
      • Android (21)
      • Flutter (7)
    • 💡 솔루션 (17)
    • 👥 모각코 (12)
    • 💬 기록 (8)
    • 📚 공부 (7)
    • -------------- (25)

최근 글

나의 외부 링크

메뉴

  • 홈
반응형

정보

i3months의 천천히 꾸준히 조용히

천천히 꾸준히 조용히

i3months

블로그 구독하기

  • 구독하기
  • RSS 피드

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. Copyright © i3months.

티스토리툴바