본문 바로가기

python7

[Python] permutations 사용법 기본 사용법from itertools import permutations문법permutations(iterable, r)iterable: 순열을 만들 데이터(문자열, 리스트, 튜플 등).r: 순열의 길이. 생략 시, 기본값은 len(iterable).반환 값각 순열을 튜플로 반환하는 이터레이터(iterator).numbers는 문자열일 때의 동작예제:from itertools import permutationsnumbers = "17"# 길이 1 순열print(list(permutations(numbers, 1)))# 길이 2 순열print(list(permutations(numbers, 2)))출력:[('1',), ('7',)] # 길이 1의 순열[('1', '7'), ('7', '1')] # 길이.. 2025. 3. 2.
프로그래머스 | Python | 완전탐색 | 전력망을 둘로 나누기 (Lv.2) https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 해결: 트리 분할 후 완전 탐색정답 코드(BFS)from collections import dequedef bfs(node, graph, visited): count = 0 queue = deque([node]) visited[node] = True while queue: current = queue.popleft() count += 1 for neighbor in graph[c.. 2025. 2. 12.
프로그래머스 | Python | 완전탐색 | 모음사전 (Lv.2) https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 분석이 문제는 특정 단어 word가 사전 순서로 몇 번째인지를 계산하는 문제입니다.모든 단어는 길이 5 이하이고, 알파벳 모음 ['A', 'E', 'I', 'O', 'U']만을 사용합니다.사전은 사전 순서대로 정렬된 순열로 구성됩니다. 예를 들어:길이 1: "A", "E", "I", "O", "U"길이 2: "AA", "AE", "AI", ..., "UU"길이 3: "AAA", "AAE", ..., "UUU"접근 방식 (완전 탐색)모든 단.. 2025. 2. 12.
프로그래머스 | Python | DFS | 타켓 넘버 (Lv.2) https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제 접근 방법주어진 문제는 모든 가능한 조합을 탐색하여 타겟 넘버를 만드는 방법의 수를 구하는 문제입니다. 이 문제를 풀기 위해 DFS(깊이 우선 탐색)을 사용하면 효율적으로 해결할 수 있습니다.  WHY DFS?1. DFS는 "모든 경우의 수 탐색" 문제에서 자주 등장이 문제는 아래 두 가지 특성을 포함하고 있습니다:모든 숫자에 대해 +와 -를 조합해 가능한 모든 경우의 수를 탐색.각 조합의 결과를 확인해 타겟 숫자와 비교.이와 같은 조합 탐.. 2025. 2. 10.
프로그래머스 | Python | BFS | 게임 맵 최단거리 (Lv.2) https://school.programmers.co.kr/learn/courses/30/lessons/1844 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr정답코드from collections import dequedef solution(maps): # 맵 크기: n은 행(row)의 개수, m은 열(column)의 개수 n, m = len(maps), len(maps[0]) # 이동 방향 (상, 하, 좌, 우) # dx: 행 방향, dy: 열 방향 dx = [-1, 1, 0, 0] # 위로(-1), 아래로(+1), 그대로(0), 그대로(0) dy = [0, 0.. 2025. 2. 9.
프로그래머스 | Python | 해시 | 전화번호 목록 (Lv.2) https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 정답코드def solution(phone_book): # 1. 전화번호를 정렬 phone_book.sort() # 2. 접두사 여부를 확인 for i in range(len(phone_book) - 1): if phone_book[i + 1].startswith(phone_book[i]): return False return True생각의 흐름 정리1. 문제 이해전화번호부에 있는 번호 .. 2025. 2. 9.