전체태그 보기

#algorithm (243개의 포스트)

victor
i + ""을 사용하지 말고 Integer.toString()을 사용하자
max9106
스택이란? 넣은 순서가 1, 2, 3, 4, 5 라고 한다면, 꺼낼 때 5, 4, 3, 2, 1 순으로 꺼내는 방법인 자료구조(짐 정리 처럼, 가장 나중에 넣은 짐을 가장 먼저 꺼낼 수 있다고 생각하면 편하다) 즉, 입구와 출구가 하나인 경우이다. 일반적으로 알고리즘 문제를 풀 때는 스택을 직접 구현하기 보다는, include stack을 하여 c++ ...
giruda222

11047

2020년 1월 21일0개의 댓글
greedy method ex) 10 4200, result:6
max9106

[Algorithm] 힙 정렬(Heap Sort)

2020년 1월 20일0개의 댓글
힙 정렬이란? 힙 트리 구조를 이용하는 정렬방법이다. 힙이란 최솟값이나 최댓값을 빠르게 찾아내기 위해 완전 이진 트리를 기반으로 하는 트리이다. 힙에는 최대힙과 최소힙이 존재한다. 최대힙이란 부모 노드가 자식 노드보다 큰 힙이다. 만약 중간의 노드 때문에 최대 힙의 조건이 만족 되지 않는다면(아래의 예시 중 5 때문에 최대힙 조건이 만족되지 않는다....
max9106

[Algorithm] 병합 정렬(Merge Sort)

2020년 1월 19일0개의 댓글
병합 정렬이란? 분할 정복 방법을 사용하는 정렬이다. 정확하게 반 씩 나누면서 정렬한다. 먼저 반으로 나눈 뒤, 나중에 합쳐서 정렬한다. 모든 요소가 자기 자신만 남을 때 까지 반으로 나눈다. 그 다음 인접한 두 수끼리 합친다.(각각 숫자 2개씩) 합치면서 두 수를 비교하여 정렬한다. 그 후 인접한 두 집합(각각 2 수를 가진 집합. 총 4개의 수를 ...
victor
source: 104. Maximum Depth of Binary Tree
max9106

[Algorithm] 삽입 정렬(Insertion Sort)

2020년 1월 18일0개의 댓글
삽입 정렬이란? 각 숫자를 적절한 위치에 삽입하는 방법이다. 필요할 때만 위치를 바꿔주는 방법이다. 각 숫자를 삽입할 위치를 살펴 볼 때, 그 숫자의 앞의 숫자들은 모두 이미 정렬된 상태이다. 따라서 필요한 만큼만 이동할 수 있기 때문에 선택정렬과 버블정렬에 비해 빠르다. 시간 복잡도 최악의 경우(앞의 숫자들이 모두 정렬되지 않은 경우)는 선...
max9106

[Algorithm] 버블 정렬(Bubble Sort)

2020년 1월 18일0개의 댓글
버블 정렬이란? 바로 이웃한 두 수를 비교하여, 작은 값을 앞으로 보내는 방법. 가장 효율성은 떨어지는 알고리즘이다. 시간 복잡도 1번 반복할 때 마다, 비교하는 요소가 하나 씩 줄어든다. 10개의 요소를 버블 정렬을 통해 정렬 할 때는, 10번 + 9번 + 8번 + ... + 1번 의 연산이 필요하고, 이는 등차수열이므로, [N * (N + ...
max9106

[Algorithm] 선택 정렬(Selection Sort)

2020년 1월 18일0개의 댓글
선택 정렬이란? 가장 작은 것을 선택하여, 계속해서 앞으로 보내주는 방법(원래 앞에 있던 숫자와 자리를 바꿔줌) 시간 복잡도 만약 10개의 요소가 담긴 배열을 선택 정렬을 사용하여 정렬할 땐, [처음 10번 + 9번 + 8번 + 7번 + 6번 + ... + 1번] 즉, 등차수열이다. 즉 N개의 요소를 선택정렬 할 때 필요한 수행시간은 [N * ...
ktseo41

피보나치 (재귀, memoize, bottom-up)

2020년 1월 11일0개의 댓글
피보나치 -출처 : CS dojo - What Is Dynamic Programming and How To Use It 일반적인 재귀 풀이 궁금증, 더 공부해볼 것들 -dynamic programming 풀이법에 대해 공부하기 위해서 선행한 풀이법 -dynamic programming의 이름이 이상하다고 느꼈는데 위키피디아, 제로초님 ...
ssuda

힙 정렬(Heap Sort) 알고리즘

2020년 1월 7일0개의 댓글
힙 정렬(Heap Sort) 알고리즘 - - 힙 정렬 알고리즘이란? 최소 힙 트리(내림 차순 정렬)나 최대 힙 트리(오름 차순 정렬)를 구성해 한번에 하나씩 요소를 힙에서 꺼내서 배열의 뒤에서부터 저장한다. - 힙 이란? 노드를 삽입할 때 왼쪽부터 차례대로 삽입하는 트리 형태인 완전 이진 트리의 일종으로 최솟값이나 최댓값을 빠르게 찾아내도록 만들어진...
ssuda

깊이 우선 탐색(DFS) 알고리즘

2020년 1월 5일0개의 댓글
그래프 탐색 알고리즘 - 그래프 하나의 정점으로부터 시작하여 모든 정점들을 한번씩 방문하는 알고리즘이다. 그래프 탐색 알고리즘의 종류로는 너비 우선 탐색(BFS : Breadth First Search), 깊이 우선 탐색(DFS : Depth First Search)가 있다. 이 포스팅에서는 깊이 우선 탐색에(DFS)에 대해 다룰 것이다. 깊이 우선...
ssuda

이진탐색(Binary Search) 알고리즘

2020년 1월 5일0개의 댓글
이진 탐색 알고리즘 - - 이진 탐색 알고리즘이란? 데이터가 정렬되어 있는 배열에서 특정한 값을 찾아내는 알고리즘이다. 정렬된 배열의 중간에 임의의 값을 찾고자하는 값과 비교하여, 1) 만약 중간의 값이 더 작다면 중간의 값을 제외한 배열의 우측 데이터들을 대상으로 탐색을 진행하고 2) 만약 중간의 값이 더 크다면 중간의 값을 제외한 배열의 좌측 데이터...
ssuda

알고리즘(Algorithm) 개요

2020년 1월 5일0개의 댓글
알고리즘 알고리즘이란? 어떤 문제를 해결하기 위한 여러 동작들의 모임이다.     알고리즘의 주제별 분류 탐색 알고리즘(Searching Algorithm) - -순서 리스트 또는 비순서화된 리스트에서 어떤 원소의 존재나 위치를 찾는 알고리즘을 말한다. - 순차 탐색(Sequential Search = Linear Sear...
dusdl14

백준) 2439 별 찍기 - 2

2019년 12월 30일0개의 댓글
https://www.acmicpc.net/problem/2439 문제 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. 입력 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다. 예제 입력 1 ...
dusdl14

백준) 2438 별 찍기

2019년 12월 29일2개의 댓글
https://www.acmicpc.net/problem/2438 문제 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 입력 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다. 예제 입력 1 5 예제 출력 1 ~ * * * * ~ 코드 ~ import...
dusdl14

백준) 2742 기찍 N

2019년 12월 29일0개의 댓글
문제 자연수 N이 주어졌을 때, N부터 1까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 100,000보다 작거나 같은 자연수 N이 주어진다. 출력 첫째 줄부터 N번째 줄 까지 차례대로 출력한다. 예제 입력 1 5 예제 출력 1 5 4 3 2 1 코드 ~ import Foundation let input = readLine(...
dusdl14

백준) 2884 알람시계

2019년 12월 29일0개의 댓글
문제 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만, 조금만 더 자려는 마음은 그 어떤 것도 없앨 수가 없었다. 이런 상근이를 불쌍하게 보던, 창영이는 자신이 사용하는 방법을 추천해 주었다. 바로 "45분 일찍 알람...
hanrimjo

기본 - 동명이인 찾기

2019년 12월 23일0개의 댓글
동명이인 찾기 - ~ def findsamename(a): n = len(a) result = set() for i in range(0, n - 1): for j in range(i + 1, n): if a...
hanrimjo

기본 - 최댓값, 최솟값

2019년 12월 23일0개의 댓글
최댓값 구하기 - ~ def findmax(a): n = len(a) maxv = a...