설명(16)
-
DFS와 BFS: 깊이 우선 탐색과 너비 우선 탐색 알고리즘 이해하기
영상으로 더 자세하게 들어보세요! 최근 한국 드라마가 전 세계적으로 인기를 끌고 있는데, 여러분은 드라마를 볼 때 어떤 방식으로 보시나요? 드라마가 끝나길 기다렸다가 몰아서 보는 편인가요, 아니면 재미있어 보이는 드라마 여러 개를 본방사수하며 챙겨보는 편인가요? 이 질문을 던지는 이유는 DFS와 BFS 알고리즘의 개념을 이해하는 데 도움이 되기 때문입니다. 한 드라마를 처음부터 끝까지 다 봐야 하는 방식이 DFS(Depth-First Search), 모든 드라마를 한 편씩 챙겨보는 방식이 BFS(Breadth-First Search)와 유사합니다. 그래프 탐색 알고리즘이란?DFS와 BFS는 그래프 탐색 알고리즘입니다. 그래프는 여러 개체들이 연결된 자료 구조로, 특정 개체를 찾기 위한 알고리즘이 필요합니..
2024.06.21 -
해시(Hash) 알고리즘 쉽게 이해하기
자세한 내용은 영상으로 확인하세요! :) 프로그래밍을 배우다 보면 많은 분들이 해시(Hash) 알고리즘에 대해 질문하고 헷갈려합니다. 그만큼 자주 나오는 개념이지만 쉽게 이해하기 어려운 부분도 있습니다. 오늘은 코딩 테스트를 준비하는 분들이 꼭 알아야 할 해시 개념에 대해 정리해 보겠습니다. 해시(Hash)란 무엇인가?해시는 키(Key)와 값(Value) 형태를 갖는 하나의 자료 구조입니다. 예를 들어, 전화번호부를 생각해봅시다. 우리가 친구의 전화번호를 찾기 위해 이름을 입력하면 해당 친구의 전화번호가 나옵니다. 여기서 이름이 키(Key)이고, 전화번호가 값(Value)입니다. 해시가 등장하기 전에는 배열(Array)이라는 자료 구조만 사용했습니다. 배열은 오직 정수로만 접근할 수 있기 때문에, 문자열..
2024.06.20 -
동적 계획법(DP) 알고리즘: 10분 만에 이해하기 (정수 삼각형 문제풀이)
자세한 내용은 영상으로 확인하세요! :) 프로그래밍을 배우면서 동적 계획법(Dynamic Programming, DP)에 대해 들어보셨을 겁니다. DP는 알고리즘 문제 해결에 매우 유용한 접근 방식입니다. 오늘은 정수 삼각형 문제를 예시로 들어 DP 알고리즘을 10분 만에 이해할 수 있도록 설명해 드리겠습니다. 동적 계획법(DP)이란?동적 계획법은 복잡한 문제를 더 간단한 하위 문제로 나누어 해결하는 방법입니다. 이는 하위 문제들의 결과를 저장하고, 이를 바탕으로 전체 문제를 해결하는 방식입니다. DP는 중복 계산을 피하고, 효율적으로 문제를 해결할 수 있게 합니다. 다이나믹 프로그래밍의 필요성다이나믹 프로그래밍은 수많은 경우의 수를 모두 고려해야 하는 문제의 수행 시간을 단축하기 위해 고안된 알고리즘입..
2024.06.20 -
[백준 11720] 숫자의 합 (브론즈 4) 문제 풀이- 파이썬 python
0. 자세한 설명은 YouTube 영상으로 1. 범용적 풀이 # ver 1 : 범용적 풀이 # 0. 입력 및 초기화 N = int(input()) arr = input() # 1. arr을 정수로 변환하여 누적 answer = 0 for i in range(len(arr)): answer += int(arr[i]) # 2. 출력 print(answer) 2. 파이써닉 풀이 # ver 2 : Pythonic 풀이 input() print(sum(map(int,input())))
2023.02.02 -
[백준 1620] 나는야 포켓몬 마스터 이다솜(실버 4) 문제 풀이- 파이썬 python
0. 자세한 설명은 YouTube 영상으로 1. 해시를 활용한 풀이 # 0. 입력 및 초기화 import sys input = sys.stdin.readline N, M = map(int, input().split()) # 1. N개의 정보를 hash에 반영 idx_to_name = {} name_to_idx = {} for i in range(1, N + 1): name = input().rstrip() idx_to_name[i] = name name_to_idx[name] = i # 2. M개의 쿼리를 해시를 통해 출력 for _ in range(M): query = input().rstrip() if query.isdigit(): print(idx_to_name[query]) else: print(..
2023.01.26 -
[프로그래머스 17682] 다트 게임(Lv 1) 문제 풀이- 파이썬 python
0. 자세한 설명은 YouTube 영상으로 1. 단순구현 + 문자열 유형 풀이 def solution(dartResult): # 0. 입력 및 초기화 scores = [] start_idx = 0 power = {'S' : 1, 'D' : 2, 'T' : 3 } # 1. dartResult 별로 처리 for i in range(len(dartResult)): op = dartResult[i] if op in power: scores.append(int(dartResult[start_idx:i]) ** power[op]) elif op == '*': scores[-2:] = [x * 2 for x in scores[-2:]] elif op == '#': scores[-1] = -scores[-1] if n..
2023.01.19