분류 전체보기
-
/* 본 게시물은 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [BoostCourse] 자바로 구현하고 배우는 자료구조 - Heap : https://www.boostcourse.org/cs204 1. 힙이란? 힙은 '최댓값 및 최솟값을 찾아내는 연산'을 빠르게 하기 위해 고안된 '완전이진트리를 기반으로 한 자료구조'이다. 완전이진트리 조건 1. 마지막 레벨을 제외한 모든 노드가 채워져야한다. 2. 모든 노드들은 왼쪽부터 채워져야한다. 힙에는 최대 힙(max heap)과 최소 힙(min heap)이 있다. 부모 노드가 자식 노드보다 크면 최대 힙, 반대이면 최소 힙이다. 가장 큰 숫자가 뿌리에 있게 하려면 최대 ..
[자료 구조] 힙/* 본 게시물은 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [BoostCourse] 자바로 구현하고 배우는 자료구조 - Heap : https://www.boostcourse.org/cs204 1. 힙이란? 힙은 '최댓값 및 최솟값을 찾아내는 연산'을 빠르게 하기 위해 고안된 '완전이진트리를 기반으로 한 자료구조'이다. 완전이진트리 조건 1. 마지막 레벨을 제외한 모든 노드가 채워져야한다. 2. 모든 노드들은 왼쪽부터 채워져야한다. 힙에는 최대 힙(max heap)과 최소 힙(min heap)이 있다. 부모 노드가 자식 노드보다 크면 최대 힙, 반대이면 최소 힙이다. 가장 큰 숫자가 뿌리에 있게 하려면 최대 ..
2021.10.09 -
/* 본 게시물은 ' ' 의 내용과 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [백준] 15650번 - N과 M (2) : https://www.acmicpc.net/problem/15650 [AeroCode] 순열과 조합 알고리즘 : https://aerocode.net/376 1. 조합이란? 표현 : nCr 정의 : 서로 다른 n개 중의 r 개를 뽑을때, 순서의 상관없이 뽑는 경우의 수 예시 : [1,2,3,4] 중 2개 뽑을 때 [1, 2] [1, 3] [1, 4] [2, 3] [2, 4] [3, 4] 2. 조합 구현 백준 15650번 문제를 통해 조합을 구현해보자. 문제 자연수 N과 M이 주어졌을 때, ..
[Algorithm] 조합 with 백준 15650번/* 본 게시물은 ' ' 의 내용과 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [백준] 15650번 - N과 M (2) : https://www.acmicpc.net/problem/15650 [AeroCode] 순열과 조합 알고리즘 : https://aerocode.net/376 1. 조합이란? 표현 : nCr 정의 : 서로 다른 n개 중의 r 개를 뽑을때, 순서의 상관없이 뽑는 경우의 수 예시 : [1,2,3,4] 중 2개 뽑을 때 [1, 2] [1, 3] [1, 4] [2, 3] [2, 4] [3, 4] 2. 조합 구현 백준 15650번 문제를 통해 조합을 구현해보자. 문제 자연수 N과 M이 주어졌을 때, ..
2021.10.05 -
/* 본 게시물은 ' ' 의 내용과 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [AeroCode] 순열과 조합 알고리즘 : https://aerocode.net/376 [백준] 15649번 - N 과 M (1) : https://www.acmicpc.net/problem/15649 1. 순열이란? 표현 : nPr 정의 : 서로 다른 n개 중의 r개를 뽑을 때, 순서를 포함한 경우의 수 예시 : [1, 2, 3] 배열의 순열 경우의 수 [1, 2, 3] [1, 3, 2] [2, 1, 3] [2, 3, 1] [3, 1, 2] [3, 2, 1] 2. 순열 구현 (with 백준 15649번) 문제 자연수 N과 M이 주..
[Algorithm] 순열 with 백준 15649번/* 본 게시물은 ' ' 의 내용과 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [AeroCode] 순열과 조합 알고리즘 : https://aerocode.net/376 [백준] 15649번 - N 과 M (1) : https://www.acmicpc.net/problem/15649 1. 순열이란? 표현 : nPr 정의 : 서로 다른 n개 중의 r개를 뽑을 때, 순서를 포함한 경우의 수 예시 : [1, 2, 3] 배열의 순열 경우의 수 [1, 2, 3] [1, 3, 2] [2, 1, 3] [2, 3, 1] [3, 1, 2] [3, 2, 1] 2. 순열 구현 (with 백준 15649번) 문제 자연수 N과 M이 주..
2021.10.05 -
/* 본 게시물은 ' ' 의 내용과 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [김초희] 코틀린에서 Queue 사용하기 : https://choheeis.github.io/newblog//articles/2020-10/kotlinQueue [자료구조] 큐에 대해 알아봤으니 kotlin 에서 큐를 사용하는 법에 대해 알아보자. 기본적으로 코틀린에서는 queue를 라이브러리로 제공하지 않는다. 그렇기 때문에 다음과 같은 방법으로 queue 를 사용할 수 있다. Kotlin 에서 제공하는 자료구조 중 queue를 대체할 자료구조 사용 (ex. ArrayList , LinkedList, Deque) Java에서 제공하..
[Kotlin] 큐 사용해보기/* 본 게시물은 ' ' 의 내용과 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [김초희] 코틀린에서 Queue 사용하기 : https://choheeis.github.io/newblog//articles/2020-10/kotlinQueue [자료구조] 큐에 대해 알아봤으니 kotlin 에서 큐를 사용하는 법에 대해 알아보자. 기본적으로 코틀린에서는 queue를 라이브러리로 제공하지 않는다. 그렇기 때문에 다음과 같은 방법으로 queue 를 사용할 수 있다. Kotlin 에서 제공하는 자료구조 중 queue를 대체할 자료구조 사용 (ex. ArrayList , LinkedList, Deque) Java에서 제공하..
2021.10.04 -
/* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [백준] 18258번 - 큐2 : https://www.acmicpc.net/problem/18258 1. 큐(Queue)란? 큐는 스택과는 반대로 입력과 출력 창구가 따로 존재하고, 제일 먼저 들어간 데이터가 제일 먼저 나오는 자료구조(First In First Out / 선입 선출)이다. 이는 우리가 먼저 온 차례대로 줄을 세우는 것과 같다. 큐는 작업을 처리하는 요소에 부하를 주지 않으면서도 처리 능력을 넘어서는 작업들을 놓치지 않고 수용할 수 있게 한다. 이러한 특성으로 큐는 '완충장치(대기열)'로 사용되는 경우가 많다. 큐의 기능 스택과 마찬가지로 큐의 주요 기능도 삽입(Enqueue), 제거(De..
[자료구조] 큐/* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [백준] 18258번 - 큐2 : https://www.acmicpc.net/problem/18258 1. 큐(Queue)란? 큐는 스택과는 반대로 입력과 출력 창구가 따로 존재하고, 제일 먼저 들어간 데이터가 제일 먼저 나오는 자료구조(First In First Out / 선입 선출)이다. 이는 우리가 먼저 온 차례대로 줄을 세우는 것과 같다. 큐는 작업을 처리하는 요소에 부하를 주지 않으면서도 처리 능력을 넘어서는 작업들을 놓치지 않고 수용할 수 있게 한다. 이러한 특성으로 큐는 '완충장치(대기열)'로 사용되는 경우가 많다. 큐의 기능 스택과 마찬가지로 큐의 주요 기능도 삽입(Enqueue), 제거(De..
2021.10.01 -
/* 본 게시물은 ' 뇌를 자극하는 알고리즘 | with 박상현 ' 의 내용과 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [백준] 10028번 - 스택 : https://www.acmicpc.net/problem/10828 1. 스택이란? '스택'의 사전적 의미는 건초나 짚더미와 같은 뭔가를 쌓아놓은 더미를 뜻한다. 자료구조의 스택 또한 데이터를 아래에서부터 위로 쌓아 얹어 올리도록 하는 자료구조이다. 스택은 중간에 데이터를 삽입하거나 삭제하는 것을 허용하지 않는다. 데이터의 입/출력은 오로지 스택의 꼭대기에서만 이루어진다. 즉, 스택은 '선입후출' (First In - Last out) 의 특징을 가진다. 스..
[자료구조] 스택/* 본 게시물은 ' 뇌를 자극하는 알고리즘 | with 박상현 ' 의 내용과 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [백준] 10028번 - 스택 : https://www.acmicpc.net/problem/10828 1. 스택이란? '스택'의 사전적 의미는 건초나 짚더미와 같은 뭔가를 쌓아놓은 더미를 뜻한다. 자료구조의 스택 또한 데이터를 아래에서부터 위로 쌓아 얹어 올리도록 하는 자료구조이다. 스택은 중간에 데이터를 삽입하거나 삭제하는 것을 허용하지 않는다. 데이터의 입/출력은 오로지 스택의 꼭대기에서만 이루어진다. 즉, 스택은 '선입후출' (First In - Last out) 의 특징을 가진다. 스..
2021.09.30 -
/* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [백준] 1002번 - 터렛 : https://www.acmicpc.net/short/status/1002/69/1 문제 이석원은 조규현과 백승환에게 상대편 마린(류재명)의 위치를 계산하라는 명령을 내렸다. 조규현과 백승환은 각각 자신의 터렛 위치에서 현재 적까지의 거리를 계산했다. 조규현의 좌표 (x1, y1)와 백승환의 좌표 (x2, y2)가 주어지고, 조규현이 계산한 류재명과의 거리 r1과 백승환이 계산한 류재명과의 거리 r2가 주어졌을 때, 류재명이 있을 수 있는 좌표의 수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 다음과 같이 이루어져..
[백준] 1002번 터렛 - 두 원의 접점 구하기 with Kotlin/* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [백준] 1002번 - 터렛 : https://www.acmicpc.net/short/status/1002/69/1 문제 이석원은 조규현과 백승환에게 상대편 마린(류재명)의 위치를 계산하라는 명령을 내렸다. 조규현과 백승환은 각각 자신의 터렛 위치에서 현재 적까지의 거리를 계산했다. 조규현의 좌표 (x1, y1)와 백승환의 좌표 (x2, y2)가 주어지고, 조규현이 계산한 류재명과의 거리 r1과 백승환이 계산한 류재명과의 거리 r2가 주어졌을 때, 류재명이 있을 수 있는 좌표의 수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 다음과 같이 이루어져..
2021.09.30 -
/* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [백준] 1929번 - 소수 구하기 : https://www.acmicpc.net/problem/1929 문제 M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. 1. Mysolution 기존에 내가 소수를 구하는 방식은 다음과 같다. 소수는 1과 자기 자신만을 약수로 가진다. -> 2부터 N-1 까지의 수로 나누었을 때 나머지가 0이 되면 안 된다. 위 방식을 코드로 구현하면 다음과 같다. fun isPrimeNum(n : Int):..
[Algorithm] 소수 빠르게 구하기 (에라토스테네스의 체) with 백준 1929번/* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [백준] 1929번 - 소수 구하기 : https://www.acmicpc.net/problem/1929 문제 M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. 1. Mysolution 기존에 내가 소수를 구하는 방식은 다음과 같다. 소수는 1과 자기 자신만을 약수로 가진다. -> 2부터 N-1 까지의 수로 나누었을 때 나머지가 0이 되면 안 된다. 위 방식을 코드로 구현하면 다음과 같다. fun isPrimeNum(n : Int):..
2021.09.28 -
/* 본 게시물은 참고자료의 내용을 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [쾌락 코딩] 코틀린 동등성 연산 : https://wooooooak.github.io/kotlin/2019/02/24/kotiln_%EB%8F%99%EB%93%B1%EC%84%B1%EC%97%B0%EC%82%B0/ [NATION OF 6KIKI] ==, compareTo(), equals() 서로간의 차이점에 대해 알아보자 : https://6kkki.tistory.com/9 [김성일] Comparable / Comparator 인터페이스 차이점 : https://dev-daddy.tistory.com/23 객체에서 숫자, 문자열 비교를 하려..
[Kotlin] == , === 차이 / Comparable, Comparator 인터페이스/* 본 게시물은 참고자료의 내용을 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [쾌락 코딩] 코틀린 동등성 연산 : https://wooooooak.github.io/kotlin/2019/02/24/kotiln_%EB%8F%99%EB%93%B1%EC%84%B1%EC%97%B0%EC%82%B0/ [NATION OF 6KIKI] ==, compareTo(), equals() 서로간의 차이점에 대해 알아보자 : https://6kkki.tistory.com/9 [김성일] Comparable / Comparator 인터페이스 차이점 : https://dev-daddy.tistory.com/23 객체에서 숫자, 문자열 비교를 하려..
2021.09.25 -
/* 본 게시물은 ' ' 의 내용과 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [비글리] 문자 인코딩이란? : https://vigli.tistory.com/52 [얄팍한 코딩사전] 문자 인코딩, 유니코드, UTF-8이 뭔가요? : https://www.youtube.com/watch?v=1jo6q4dihoU 1. 인코딩이란? 위키백과에 따르면 '인코딩'이란 정보의 형태나 형식을 변환하는 처리나 처리 방식으로 정의되어있다. 즉, '어떤 정보를 미리 약속한 규칙으로 가공해서 컴퓨터가 이해하게 만든다'라고 보면 된다. 인코딩은 문자, 동영상, 사진 등 다양한 분야에서 사용되고 있다. 그 중 '문자 인코딩'에 대해 ..
[CS] 인코딩/* 본 게시물은 ' ' 의 내용과 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [비글리] 문자 인코딩이란? : https://vigli.tistory.com/52 [얄팍한 코딩사전] 문자 인코딩, 유니코드, UTF-8이 뭔가요? : https://www.youtube.com/watch?v=1jo6q4dihoU 1. 인코딩이란? 위키백과에 따르면 '인코딩'이란 정보의 형태나 형식을 변환하는 처리나 처리 방식으로 정의되어있다. 즉, '어떤 정보를 미리 약속한 규칙으로 가공해서 컴퓨터가 이해하게 만든다'라고 보면 된다. 인코딩은 문자, 동영상, 사진 등 다양한 분야에서 사용되고 있다. 그 중 '문자 인코딩'에 대해 ..
2021.09.24 -
/* 본 게시물은 ' BoostCourse - 자바로 배우는 자료구조 ' 의 내용과 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [genius-dev] Linked List에 대하여 : https://genius-dev.tistory.com/entry/Kotlin%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-Linked-List%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC1-%EA%B5%AC%ED%98%84%EA%B3%BC-%ED%95%A8%EA%BB%98 1. Linked List 구조 이번에는 코틀린으로 Linked List를 구현해보자. (LinkedList 에 대한..
[자료구조] Linked List with Kotlin/* 본 게시물은 ' BoostCourse - 자바로 배우는 자료구조 ' 의 내용과 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [genius-dev] Linked List에 대하여 : https://genius-dev.tistory.com/entry/Kotlin%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-Linked-List%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC1-%EA%B5%AC%ED%98%84%EA%B3%BC-%ED%95%A8%EA%BB%98 1. Linked List 구조 이번에는 코틀린으로 Linked List를 구현해보자. (LinkedList 에 대한..
2021.09.23 -
/* 본 게시물은 ' BoostCourse - 자바로 구현하고 배우는 자료구조 - 경계조건 ' 의 내용과 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [URL] : https://www.boostcourse.org/cs204/lecture/625940 우리가 자료구조를 만들 때 생각해야하는 것을 '경계 조건' 이라 한다. 그러면 경계 조건에는 무엇이 있을까? 자료 구조가 비어있는 경우 자료 구조에 단 하나의 요소가 들어있을 때 자료 구조의 첫 번째 요소를 제거하거나 추가할 때 자료 구조의 마지막 요소를 제거하거나 추가할 때 자료 구조의 중간 부분을 처리할 때 예시로 우리가 첫 번째 요소를 제거(추가)한다고 가정해..
[자료구조] 경계조건/* 본 게시물은 ' BoostCourse - 자바로 구현하고 배우는 자료구조 - 경계조건 ' 의 내용과 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [URL] : https://www.boostcourse.org/cs204/lecture/625940 우리가 자료구조를 만들 때 생각해야하는 것을 '경계 조건' 이라 한다. 그러면 경계 조건에는 무엇이 있을까? 자료 구조가 비어있는 경우 자료 구조에 단 하나의 요소가 들어있을 때 자료 구조의 첫 번째 요소를 제거하거나 추가할 때 자료 구조의 마지막 요소를 제거하거나 추가할 때 자료 구조의 중간 부분을 처리할 때 예시로 우리가 첫 번째 요소를 제거(추가)한다고 가정해..
2021.09.23