재귀함수(4)
-
프로그래머스 모음사전 코드 및 해설 (파이썬)
https://programmers.co.kr/learn/courses/30/lessons/84512 코딩테스트 연습 - 모음사전 사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A"이고, 그다음은 "AA"이며, 마지막 단어는 "UUUUU"입니 programmers.co.kr 재귀함수를 활용해 풀이했습니다. 주어진 스트링의 직전 스트링의 형태를 파악하고 여기에 +1 하는 식으로 풀이했습니다. 예를 들어 EIO의 직전 스트링은 EIIUU이므로, EIIUU의 순서에 1을 더한 것을 최종 답으로 반환하는 식입니다. 이를 위해 마지막 문자가 A가 아닌 경우는 그 문자의 전 문자(ex. E의 전 ..
2021.11.03 -
백준 별 찍기 코드 및 해설 (파이썬)
https://www.acmicpc.net/problem/2447 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net 로그 함수 때문에 애 먹었다 왜 그러는거야? 왜 log_3(81)은 4.0이고 log_3(243)은 4.99 라서 날 힘들게 만든거야! int가 아니라 round를 써야 했다 재귀함수를 사용했다. [이전 모양 사각형] [이전 모양 사각형] [이전 모양 사각형] [이전 모양 사각형] [ N/3 빈 정사각형] [이전 모양 사각형] [이전 모양 사각형] [이전 모양 사각형] ..
2021.09.29 -
정렬된 배열에서 특정 수의 개수 구하기 코드 및 해설 (파이썬)
출처: 이것이 취업을 위한 코딩 테스트다 with 파이썬, Q 27, p 367 재귀함수로 구현한 이진 탐색 코드를 참고하여 풀이했습니다. 타겟 값이 있는 인덱스를 result라는 집합에 모두 추가하고 이 집합의 길이를 반환했습니다. 기존의 이진 탐색과 동일하지만, 중간값이 타겟과 같은 경우 현재 중간값을 result 집합에 추가해주었고, 왼쪽과 오른쪽 모두에 타겟이 더 있을 수 있으므로 end를 mid-1로 갱신한 탐색, start를 mid+1로 갱신한 탐색 모두를 진행하도록 했습니다. 타겟 원소가 하나도 없으면 -1을 출력하도록 했으므로 result의 길이가 0보다 크면 len(result)를, 그렇지 않으면 -1을 출력하도록 했습니다. https://codlingual.tistory.com/189 ..
2021.06.28 -
DFS, BFS
DFS - 스택 - 재귀함수 이용 # DFS 메서드 정의 def dfs(graph, v, visited): # 현재 노드를 방문 처리 visited[v] = True print(v, end = '') # 현재 노드와 연결된 다른 노드를 재귀적으로 방문 for i in graph[v]: if not visited[i]: dfs(graph, i, visited) BFS - 큐 from collections import deque # BFS 메서드 정의 def bfs(graph, start, visited): queue = deque([start]) # 현재 노드를 방문 처리 visited[start] = True # 큐가 빌 때까지 반복 while queue: # 큐에서 하나의 원소를 뽑아 출력 v = de..
2021.06.22