문제 풀이/소프티어

[소프티어] Recovering the Region(JAVA)

27200 2025. 2. 15. 17:47

문제

https://softeer.ai/practice/9497


풀이(11분)

import java.io.*;

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

        int n = Integer.parseInt(br.readLine());

        for(int i = 0 ; i < n; i++){
            br.readLine();
        }

        for(int i = 1; i <= n; i++){
            for(int j = 1; j <= n; j++){
                System.out.print(i + " ");
            }
            System.out.println();
        }


    }
}

 

평소 스도쿠를 즐겨하기에 문제를 보자마자 당황했다.

 

왜냐하면, 조건의 추가 없이는 그저 정답이 나올 수밖에 없는 문제였기 때문이다.

 

1. 가로 줄은 모두 다른 수를 갖는다.

2. 세로 줄은 모두 다른 수를 갖는다.

3. 한 구역에 있다면 모두 다른 수를 갖는다.

4. 정답이 여러개라면 하나만 출력하면 된다.

 

여기서 맹점은 가로 혹은 세로로 한 줄씩 구역을 만들어도 문제가 해결된다는 것이었다.

 

설마 그렇겠냐고 생각하며 방법을 고민해 봤다.

 

구역을 확인하며, 여러 개의 배열을 선언하며 저장을 해나가야 하나?

-> 어떻게 처리해야 하지..

-> 메모리 초과가 나지는 않을까?

-> 시간 초과는..?

 

이 세 개에 대한 답이 모두 나오지 않았고, 문제 레벨 2였기에 혹시나 하고 시도해 봤으나 맞추었다.

 

출제자에게 연락할 수 있는 방법이 있다면, 이것이 진정으로 의도한 풀이인지 혹은 출제 오류였는지 궁금하다.