[백준] 1339 : 단어 수학 (파이썬)
·
Algorithm/Greedy
그리디, 백트래킹 문제https://www.acmicpc.net/problem/1339접근 방식 그리디 알파벳이 각각의 자릿수에 몇번 등장하는지를 자릿수 별로 10의 거듭제곱 승의 가중치를 부여하여 알파벳 dictionary에 기록-> 가중치 값이 가장 큰 알파벳 순서대로 9 ~ x 까지의 숫자를 부여한 후 결과값 출력백트래킹9 ~ x (각기 다른 알파벳의 갯수만큼)의 수를 순열로 배치 -> 합했을 때에 가장 큰 결과값이 나올 때의 값을 기록짚고 넘어갈 Point✏️ 백트래킹 전에는 시간 복잡도 계산을 하자 !순열 주어진 n개의 원소 중에서 r개를 선택하여 배열하는 경우의 수조합 순서를 고려하지 않고 주어진 n개의 원소 중에서 r개를 선택하는 경우의 수 ✏️ Dictionary에서 key값이 아닌 key..
프로그래머스 네트워크
·
Algorithm/Graph
그래프, BFS/DFS 문제https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 💡 풀이코드 (성공 - MST Prim)import heapqdef solution(n, computers): answer = 0 graph = [[] for _ in range(len(computers) + 1)] # graph 만들기 for i in range(len(computers)): for j in range(len(computers)): ..
프로그래머스 모의고사
·
Algorithm/Simulation
완전탐색 문제https://school.programmers.co.kr/learn/courses/30/lessons/42840 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr💡 풀이코드 (성공 - 내코드)def brute_forth(l, ans): a = [] b = [] c = [] num1 = [1, 2, 3, 4, 5] num2 = [1, 2, 3, 4] num3 = [3, 1, 2, 4, 5] cnt = [[0,1], [0,2], [0,3]] # 1번 for i in range(l // 5 + 1): if len(a) =..
[백준] 9934 : 완전 이진 트리 (파이썬)
·
Algorithm/Recursion
트리, 재귀 문제https://www.acmicpc.net/problem/9934접근 방식31 6 4 3 5 2 7 주어진 입력과 그래프의 형태를 비교해보면, 그래프를 중위 순회한 결과가 입력 배열로 주어졌다는 사실을 알 수 있다.따라서, 중위 순회 결과를 기반으로 트리를 재구성한 후, 각 깊이에 위치한 노드들을 출력해주면 된다.💡 풀이코드 (성공)import sys n = int(sys.stdin.readline())arr = list(map(int, sys.stdin.readline().split()))graph = [[] for _ in range(n)]depth = 0def recursive(start, end, depth): if start >= end : return mid = ..
[백준] 1913 : 달팽이 (파이썬)
·
Algorithm/Simulation
구현 문제https://www.acmicpc.net/problem/1913접근 방식중심 좌표로부터 시작한다.특정 좌표로부터 위, 오, 아, 왼 순으로 이동한다.이때, 위쪽과 아래쪽 방향으로 이동할 때, 이동해야할 길이(i)를 전보다 1 증가시켜준다. if j == 0 or j == 2: i += 1이동해야 할 길이(i)만큼 이중 for문을 돈다.현재 방향(j)으로 좌표를 한 칸 이동한 후, 해당 그래프의 좌표에 cnt를 기록해준다.for _ in range(i): if cnt == k: ans.append(y + 1) ans.append(x + 1) if cnt >= n * n: return # while문 탈출 조건 지정 cnt += 1 y += dy..
[백준] 11000 : 강의실 배정 (파이썬)
·
Algorithm/Greedy
스위핑, 우선순위큐, 그리디 문제https://www.acmicpc.net/problem/11000💡 풀이코드 (성공 - 스위핑)import sys import heapq n = int(sys.stdin.readline())lecture = []for _ in range(n): a, b = map(int, sys.stdin.readline().split()) heapq.heappush(lecture, (a, 1)) # start heapq.heappush(lecture, (b, 0)) # end cnt = 0ans = 0while lecture: a, b = heapq.heappop(lecture) if b == 1: cnt += 1 else: ..
_은선_
'Algorithm' 카테고리의 글 목록