inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

2026 코딩테스트 올인원 [JAVA]

[문제풀이] 구름의 개수1

part6. 구름의 개수 풀이 시간초과 이유

83

송유진

작성한 질문수 11

0

part6 구름의개수1 문제 풀다 질문 드립니다.

아래는 제가 bfs로 푼 코드인데요. 케이스는 통과하는데 시간초과가 납니다.

bfs() 매개변수로 int[] start 를 받아서 아래에서 사용했는데, 하위 for문에서 int[] sub 로 배열을 만들어 쓴게 문제인가 싶은데, 이런 일차원 배열 더 쓴다고 시간복잡도가 높아지나? 싶은 생각이 들어 시간 초과 왜나는지 궁금합니다.

 

public static int solution(int[][] sky) {
    boolean[][] visited = new boolean[sky.length][sky[0].length];
    int count = 0;

    for(int i=0; i<sky.length; i++) {
        for(int j=0; j<sky[0].length; j++) {
            if(!visited[i][j] && (sky[i][j] == 1)) {
                bfs(sky, new int[]{i,j}, visited);
                count++;
            }
        }
    }

    return count;
}

public static void bfs(int[][] sky, int[] start, boolean[][] visited) {
    Queue<int[]> q = new ArrayDeque<>();
    q.offer(start);
    visited[start[0]][start[1]] = true;

    while(!q.isEmpty()) {
        int[] cur = q.poll();
        System.out.println("start: " + start[0] + start[1] + "/ poll: " + cur[0] + ", " + cur[1]);

        // cur의 상하좌우 중 갈 수 있는 길 & visited 안한 길을 q에 넣기
        int[] r = {-1, 1, 0, 0};
        int[] c = {0, 0, -1, 1};
        int w = sky[0].length;
        int h = sky.length;

        for(int i=0; i<r.length; i++) {
            int[] sub = new int[]{cur[0]+r[i], cur[1]+c[i]};
            System.out.println("sub:" + sub[0] + ","+sub[1]);
            if((sub[0] >= 0 && sub[0] < h && sub[1] >= 0 && sub[1] < w) && (sky[sub[0]][sub[1]] != 0) && (!visited[sub[0]][sub[1]])) {
                q.offer(sub);
                visited[sub[0]][sub[1]] = true;
                System.out.println("sub offer:" + sub[0] + ","+sub[1]);
            }
        }

    }
}

 

 

java 코딩-테스트 알고리즘 data-structure

답변 2

0

송유진

헉 print문 때문에 시간초과가 난거라니.. 원래그런가요?ㅠㅠ

0

inflearner

안녕하세요 유진님!!

 

혹시 print 출력문 다 지우고 제출해보시겠어요~?

part8 Notion 링크

0

17

1

잠겨버린 사물함 시간초과 관련 질문입니다.

0

25

1

Climbing Stairs 문제 basecase 생각하는 방법

0

30

1

DFS/BFS

1

36

2

노션 링크 질문드립니다!

0

71

3

[문제풀이] network delay time

0

66

2

위상정렬 구현 관련

0

78

3

코딩테스트를 위한 JAVA 질문 있습니다!

0

89

1

점진적과부하 문제 - 시간 초과 오류

0

81

2

예제 2번 오류

0

80

2

part5 홍팀청팀 테스트케이스 오류

1

83

1

코테 사이트 네트워크 연결....

1

90

2

DP-다익스트라

0

76

2

코테 사이트 네트워크 연결 문제 확인 부탁드립니다.

2

89

2

코테 사이트에 접속이 안됩니다.

0

95

2

노션 링크가 어디있나요?

0

110

2

정답과 동일하게 작성 후 실행 또는 제출했음에도 시간초과

0

99

4

DFS vs BFS 중 BFS 추천해주신 것 관련 질문

1

76

2

part5. 청팀홍팀 풀이 질문 드립니다.

0

91

3

추후 학습 계획 질문

0

83

1

자바 정렬

0

49

2

코테의 바이블(java) 와 해당 강의 차이

0

114

2

커리큘럼 관련 질문

0

76

1

queue에 값을 추가하는 메서드는 어떤 차이가 있나요?

0

86

1