DFS 11

99클럽 코테 스터디 4일차 TIL + DFS

https://www.acmicpc.net/problem/2468# 2468 안전영역import sysinput = sys.stdin.readlinesys.setrecursionlimit(10**7)n = int(input())graph = []maxNum = 0 # 입력받은 높이의 최댓값 > 비for _ in range(n): graph.append(list(map(int, input().split()))) maxNum = max(maxNum, max(graph[-1])) # 각 행을 입력받으며 최댓값 구하기# 상하좌우dx = [0,0,-1,1]dy = [-1,1,0,0]def dfs(x,y,num): # num은 비가 왔을 때 잠기는 높이 visited[x][y] = True ..

Algorithm/Problems 2025.04.03

99클럽 코테 스터디 7일차 TIL + 완전탐색

https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krfrom itertools import productdef solution(word): answer = 0 vowels = ['A', 'E', 'I', 'O', 'U'] dict = [] for i in range(1,6): for v in product(vowels, repeat=i): dict.append(''.join(v)) dict.sort() answer = dict..

Algorithm/Problems 2024.11.04

[백준/파이썬] 15651번 N과 M(3)

https://www.acmicpc.net/problem/15651 15651번: N과 M (3) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net import sys read = sys.stdin.readline def dfs(): if len(s) == m: print(' '.join(map(str,s))) return for i in range(1, n+1): s.append(i) dfs() s.pop() n, m = map(int, read().split()) s = [] dfs() 중복도 허용되므로 visited 관련된 코드를 제거..

Algorithm/Problems 2023.02.01

[백준/파이썬] 15650번 N과 M (2)

https://www.acmicpc.net/problem/15650 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net import sys read = sys.stdin.readline def dfs(): if (len(s) == m) and s == sorted(s): print(' '.join(map(str,s))) return for i in range(1, n+1): if visited[i]: continue visited[i] = True s.append(i) dfs() s.pop() visited[i]..

Algorithm/Problems 2023.02.01

[백준/파이썬] 15649번 N과 M (1)

https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net import sys read = sys.stdin.readline def dfs(): if len(s) == m: print(' '.join(map(str,s))) return for i in range(1, n+1): if visited[i]: continue visited[i] = True s.append(i) dfs() s.pop() visited[i] = False n, m = map(i..

Algorithm/Problems 2023.02.01