본문 바로가기

algorithm

(13)
[Algorithm/Swift] 동적 계획법(Dynamic Programming) 안녕하세요 제인입니다! 오늘은 알고리즘 개념 중 동적 계획법(Dynamic Programming)에 대해 정리해보려고 합니다. 동적 계획법이 무엇인지 정리해보고, 동적 계획법의 대표적인 예제인 문제를 통해 적용까지 해보도록 할게요! 동적 계획법(Dynamic Programming, DP) 다이나믹 프로그래밍(줄여서 DP)라고도 불리는 동적 계획법은 큰 문제를 작게 나누고, 같은 문제라면 한 번씩만 풀어 문제를 효율적으로 해결하는 알고리즘 기법입니다. 동적 계획법에서는 메모이제이션(Memoization) 기법이 핵심이라고 할 수 있는데요! 메모이제이션 기법이란, 한 번 구한 결과를 메모리 공간에 저장해두고 같은 식을 다시 호출해 저장한 결과를 그대로 가져오는 기법을 의미합니다. 메모이제이션은 값을 저장하는..
[Algorithm/Swift] 프로그래머스(Lv.1) - [1차] 다트게임 안녕하세요 제인입니다!! 2018 KAKAO BLIND RECRUITMENT 문제로 출제되었던 다트게임 문제를 풀어봤는데요, 프로그래머스 기준 Level1 문제이지만 저는 접근하는데 꽤나 오래걸렸기 때문에.. 어떻게 풀었는지 복기하며 정리해보도록 하겠습니다!! 문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 카카오톡 게임별의 하반기 신규 서비스로 다트 게임을 출시하기로 했다. 다트 게임은 다트판에 다트를 세 차례 던져 그 점수의 합계로 실력을 겨루는 게임으로, 모두가 간단히 즐길 수 있다. 갓 입사한 무지는 코딩 실력을 인정받아 게임의..
[Algorithm/Swift] 프로그래머스(Lv.1) - 최대공약수와 최소공배수 안녕하세요 제인입니다!! 오늘은 프로그래머스 문제를 풀다가 알게된 최대공약수, 최소공배수 구하는 방법에 대해 기록해보려고 합니다! 프로그래머스의 최대공약수와 최소공배수 문제는 레벨1의 간단한 문제이지만 최대공약수, 최소공배수를 구하는 공식(?)과 같은 개념을 알고있지 않다면 쉽게 풀 수 없는 문제이기 때문에 다른 문제들에서의 응용에 대비해 정리하고 넘어가려고 합니다!! 문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최..
[Algorithm/Swift] BFS(너비 우선 탐색) Swift로 구현해보기 안녕하세요 제인입니다:) 오늘은 저번 알고리즘 포스팅(DFS)에 이어 BFS(너비 우선 탐색)에 대해 정리해보려 합니다! 시작하기 전에, 탐색 알고리즘 중 하나인 BFS를 이해하려면 우선 그래프에 대한 이해부터 필요하니 혹시 그래프에 대해 잘 모르신다면 아래 링크로 걸어둔 이전 포스팅을 참고해주시면 좋을 것 같습니다!! [Algorithm/Swift] DFS(깊이 우선 탐색) Swift로 구현해보기 요즘 라는 책으로 알고리즘 개념들을 하나씩 뿌수고 있는데요, 이 책이 파이썬 언어를 기준으로 설명되어있어서 개념을 학습하고, 예제나 실전 문제들을 Swift언어로 풀이해보는 방식으로 차근 janechoi.tistory.com BFS BFS(Breadth First Search)는 '너비 우선 탐색'이라는 의미..
[Algorithm/Swift] DFS(깊이 우선 탐색) Swift로 구현해보기 요즘 라는 책으로 알고리즘 개념들을 하나씩 뿌수고 있는데요, 이 책이 파이썬 언어를 기준으로 설명되어있어서 개념을 학습하고, 예제나 실전 문제들을 Swift언어로 풀이해보는 방식으로 차근차근 공부해가고 있습니다! 개념을 공부하고 Swift 언어로 바꿔보는 과정을 정리해두면 좋을 것 같아서 하나씩 정리해보려고 합니다! 오늘은 알고리즘에서 가장 중요한 개념들 중 하나인 탐색 알고리즘, 그 중에서도 DFS(깊이 우선 탐색)의 개념을 정리해보고, 책의 간단한 예제를 Swift 언어로 바꿔서 DFS를 구현해보도록 하겠습니다! DFS DFS(Depth-First Search)는 깊이 우선 탐색이라고도 부르며, 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘입니다. 그렇다면, 그래프는 어떤 구조인지 부터 알아야 ..