모든 챌린지
보통 0명 해결 정답률 0%

Game of Life Step

Advance Conway's Game of Life by one generation.

문제

Each cell is alive (1) or dead (0) and has up to 8 neighbors. In the next generation a live cell survives with 2 or 3 live neighbors, and a dead cell becomes alive with exactly 3. Cells outside the grid are dead. All cells update at the same time.

Implement next_generation(grid).

Input

grid: A rectangular grid of 0s and 1s.

Output

Return the next generation.

제약 조건

0 ≤ rows, columns ≤ 200

예시

예시 1
입력:
grid = [
    [0, 1, 0],
    [0, 1, 0],
    [0, 1, 0]
]

예상 출력:
expected = [
    [0, 0, 0],
    [1, 1, 1],
    [0, 0, 0]
]
입력:
std::vector<std::vector<long long>> grid = {
    {0, 1, 0},
    {0, 1, 0},
    {0, 1, 0}
};

예상 출력:
std::vector<std::vector<long long>> expected = {
    {0, 0, 0},
    {1, 1, 1},
    {0, 0, 0}
};
입력:
long[][] grid = new long[][] {
    new long[] {0, 1, 0},
    new long[] {0, 1, 0},
    new long[] {0, 1, 0}
};

예상 출력:
long[][] expected = new long[][] {
    new long[] {0, 0, 0},
    new long[] {1, 1, 1},
    new long[] {0, 0, 0}
};

설명

The vertical "blinker" turns horizontal: the center survives and its left and right neighbors are born, filling the middle row.

예시 2
입력:
grid = [
    [1, 1],
    [1, 1]
]

예상 출력:
expected = [
    [1, 1],
    [1, 1]
]
입력:
std::vector<std::vector<long long>> grid = {
    {1, 1},
    {1, 1}
};

예상 출력:
std::vector<std::vector<long long>> expected = {
    {1, 1},
    {1, 1}
};
입력:
long[][] grid = new long[][] {
    new long[] {1, 1},
    new long[] {1, 1}
};

예상 출력:
long[][] expected = new long[][] {
    new long[] {1, 1},
    new long[] {1, 1}
};

설명

Every cell of the 2×2 block has 3 neighbors, so the block stays the same.

참고 자료

이 문제는 CodeUtility에 맞게 수정되었습니다. 위의 설명과 제한 조건을 따르세요.

다른 사람의 풀이 보기

커뮤니티 솔루션

아직 공개된 풀이가 없습니다. 문제를 풀고 첫 풀이를 공유하세요.