728x90
반응형

2025/02/07 3

[Baekjoon 6603 / Python / 실버2] 로또

기본적인 백트래킹 문제이다.주어진 집합에서 6개 숫자의 조합(순서가 다른 같은 숫자를 중복으로 간주)을 구해야 한다. # 실버2 -> 백트래킹import sysinput = sys.stdin.readlinedef back_tracking(depth, start, result):    # 6개의 숫자가 모이면 출력    if depth == 6:        print(*result)        return        for i in range(start, len(S)):        result.append(S[i])        back_tracking(depth + 1, i + 1, result)        result.pop()while True:    K, *S = map(int, input..

[Baekjoon 1012 / python / 실버2] 유기농 배추

무난한 BFS 문제이다.상하좌우로 연결된 영역이 몇개인지를 출력하면 된다. # 실버2 -> BFS"""T : 테스트 케이스 개수M : 열 ( 가로길이 )N : 행 ( 세로길이 )K : 심어진 배추 개수table : 1은 배추, 2는 방문한 곳"""from collections import dequeimport sysinput = sys.stdin.readlineT = int(input())dx = [-1, 1, 0, 0]dy = [0, 0, -1, 1]# 테이블 내에 있고, 배추인지 확인하는 함수def going_no_going(nx, ny, table):    if 0 nx N and 0 ny M and table[nx][ny] == 1:        return True    return Fa..

Algorithm/BFS 2025.02.07

[Baekjoon 11660 / python / 실버1] 구간 합 구하기 5

누적 합, DP 문제이다.2차원 리스트를 사용하기 때문에 단일 리스트보단 조금 더 복잡하다. # 실버1 -> 누적 합"""N : 표의 크기M : 합을 구해야 하는 횟수"""import sysinput = sys.stdin.readlineN, M = map(int, input().split())origin = [list(map(int, input().split())) for _ in range(N)]# dp(누적 합)테이블 생성dp = [[0] * (N + 1) for _ in range(N + 1)]for i in range(1, N + 1):    for j in range(1, N + 1):        dp[i][j] = origin[i-1][j-1] + dp[i][j-1] + dp[i-1][j] ..

728x90
반응형