프로그래머스 모의고사
·
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: ..
[백준] 2293 : 동전 1 (파이썬)
·
Algorithm/DP
DP 문제https://www.acmicpc.net/problem/2293💡 풀이코드 (실패 - 메모리 초과)import sys n, k = map(int, sys.stdin.readline().split())coin = [0] for _ in range(n): num = int(sys.stdin.readline()) coin.append(num) def sol(n, k, coin): dp = [[0] * (k + 1) for _ in range(n + 1)] for i in range(n + 1): dp[i][0] = 1 for i in range(1, n + 1): for j in range(1, k + 1..
[백준] 15989 : 1, 2, 3 더하기 4 (파이썬)
·
Algorithm/DP
DP 문제 https://www.acmicpc.net/problem/15989접근 방식1, 2, 3 더하기 문제와 다른점1, 2, 3 더하기 문제는 1, 2, 3을 활용하여, 그 합이 k가 되도록 만드는 순열 문제이다.아래 두가지 경우는 각각 다른 경우이다.1+2+12+1+11, 2, 3 더하기 4 문제는 1, 2, 3을 활용하여, 그 합이 k가 되도록 만드는 조합 문제이다.아래 두가지 경우는 같은 경우이다.1+2+12+1+1동전 문제와 같은점동전 문제는 주어진 동전의 금액을 활용하여, 그 금액의 합이 k원이 되도록 만드는 조합 문제이다.이 문제는 1, 2, 3을 활용하여, 그 합이 k가 되도록 만드는 조합 문제이다.따라서, 동전 문제와 같은 방법으로 문제를 풀 수 있다.💡 풀이코드 (성공 - 2차원 ..
_은선_
'Algorithm' 카테고리의 글 목록 (2 Page)