분류 전체보기 80

[바킹독의 실전 알고리즘] 0x06 큐 복습 -C++

앞으로 작성할 내용들은 유튜브에서 바킹독님의 알고리즘 강의를 들은 내용을 토대로 하여, 필요할 경우 전공으로 배운 내용을 조금씩 엮어 복습한 내용입니다. 바킹독의 실전 알고리즘 0x06강 링크 강의내용 복습 큐의 정의와 성질 큐 : 한쪽 끝에서 원소를 넣고 반대쪽 끝에서 원소를 뺄 수 있는 자료구조(FIFO, First In First Out) 큐의 성질 1. 원소의 추가가 O(1) 2. 원소의 제거가 O(1) 3. 제알 앞/뒤의 원소 확인이 O(1) 4. 제일 앞/뒤가 아닌 나머지 원소들의 확인/변경이 원칙적으로 불가능 rear : 큐에서 원소가 추가되는 곳(뒤쪽) front : 큐에서 원소가 제거되는 곳(앞쪽) 큐의 기능과 구현 배열과 연결리스트 어떤것으로도 구현은 가능하나, 배열이 구현하기 더 쉽다..

알고리즘/Study 2022.02.16

[백준] 2579번 계단오르기 -C++

https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 다이나믹 프로그래밍(dp)를 이용해서 풀어야 하는 문제이다. 사실 아직 알고리즘 강의를 dp 부분을 안듣긴 했는데 점화식을 쓰는 부분이 마치 대입시절 수리논술을 공부하는 기분이 나서 풀어봤다. 처음 풀이 n번째 계단까지갈려면 아래와 같은 두가지 방법이 있다. n-2번째 계단 점수 + n번째 계단 점수 n-1번째 계단 점수 + n번째 계단 점수 두가지 방법중 max(방법1, 방법2)가 답이 아닐까? 생각했고 그..

대한상공회의소 한자3급 합격 후기

그동안 블로그 포스팅이 뜸했던 이유, 저희 대학교의 졸업요건인 한자3급을 따기 위해서였습니다. 어렸을 적 마법천자문으로 바람 풍, 대신 대, 마귀 마만 배운자의 한자 3급 합격후기, 시작합니다! 대한상공회의소 한자 3급 합격 후기 합격조건 대한상공회의소에서 시행하는 한자 3급은 총 3과목(1과목 한자, 2과목 어휘, 3과목 독해)로 이루어져 있습니다. 총 120 문제이고, 과목당 40문제입니다. 만점은 720점이고, 세 과목을 합해 576점 이상 받아야 합격합니다. 문항별 배점 : 1과목 4점, 2과목 6점, 3과목 8점 과목별 최소 합격점수 : 1과목 96점, 2과목 144점, 3과목 192점(과목별 최소 24문제 이상 맞아야 함) 공부 기간 시험 날짜 : 2022년 2월 11일 상시시험 공부 기간 :..

잡동사니 2022.02.12

[바킹독의 실전 알고리즘] 0x05 스택 복습 -C++

앞으로 작성할 내용들은 유튜브에서 바킹독님의 알고리즘 강의를 들은 내용을 토대로 하여, 필요할 경우 전공으로 배운 내용을 조금씩 엮어 복습한 내용입니다. (이것은 다 ~ 개강 전까지 그동안 굳어있던 머리를 활성화 시키기 위한 발악인 것입니다...) 바킹독의 실전 알고리즘 0x05강 링크 강의내용 복습 스택의 정의와 성질 스택 : 한쪽 끝에서만 원소를 넣거나 뺄 수 있는 자료구조, LIFO(Last In First Out) *Restricted Structure : 특정 위치에서만 원소를 넣거나 뺄 수 있는 제한이 걸려있음(스택, 큐, 덱) 스택의 성질 1. 원소의 추가가 O(1) 2. 원소의 제거가 O(1) 3. 제일 상단의 원소 확인이 O(1) 4. 제일 상단이 아닌 나머지 원소들의 확인/변경은 원칙적..

알고리즘/Study 2022.01.30

[바킹독의 실전 알고리즘] 0x04 연결리스트 복습 -C++

앞으로 작성할 내용들은 유튜브에서 바킹독님의 알고리즘 강의를 들은 내용을 토대로 하여, 필요할 경우 전공으로 배운 내용을 조금씩 엮어 복습한 내용입니다. (이것은 다 ~ 개강 전까지 그동안 굳어있던 머리를 활성화 시키기 위한 발악인 것입니다...) 바킹독의 실전 알고리즘 0x04강 링크 강의내용 복습 연결리스트의 정의와 성질 연결리스트 : 원소들을 저장할 때 그 다음 원소가 있는 위치를 포함시키는 방식으로 저장하는 자료구조 연결리스트의 성질 1. k번째 원소를 확인/변경하기 위해 O(k)가 필요함 배열과 달리 공간에 원소들이 연속해서 위치하고 있지 않기 때문 2. 임의의 위치에 원소를 추가/임의 위치의 원소 제거는 O(1) 연결리스트의 굉장히 큰 장점! 3. 원소들이 메모리 상에 연속해있지 않아 Cach..

알고리즘/Study 2022.01.27

[백준] 11729번 하노이 탑 이동 순서 -자바(JAVA)

https://www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net 망할 하노이탑을 리뷰할 시간이다. 덕분에 머리에 과부하가 제대로 걸렸다. 백준에서 단계별로 풀어보기를 따라서 풀어보고 있던 터라, 재귀 함수를 이용하는 문제인 줄은 알고 시작했다. 어릴때 모형으로 여러번 가지고 놀았던 기억이 있는데, 도대체 이걸 어떻게 코드로 구현하란건지 막막했다. 그러곤 한창 스트레스 받으며 화장실에 앉아있었는데, 갑자기 머리에 스쳐지나간 생각이 있다. "도대체 이..

[바킹독의 실전 알고리즘] 0x03 배열 복습 -C++

앞으로 작성할 내용들은 유튜브에서 바킹독님의 알고리즘 강의를 들은 내용을 토대로 하여, 필요할 경우 전공으로 배운 내용을 조금씩 엮어 복습한 내용입니다. (이것은 다 ~ 개강 전까지 그동안 굳어있던 머리를 활성화 시키기 위한 발악인 것입니다...) 바킹독의 실전 알고리즘 0x03강 링크 강의내용 복습 배열의 정의와 성질 *프로그래밍 언어의 관점에서의 배열과 달리, 바킹독님 강의의 자료구조로써의 배열에서는 길이를 마음대로 늘리거나 줄일 수 있다고 생각한다. 배열 : 메모리 상에 원소를 연속하게 배치한 자료구조 배열의 성질 1. O(1)에 k번째 원소를 확인/변경 가능 메모리 상에 원소를 연속하게 배치한 자료구조이기 때문에 시작주소에서 k칸 만큼 오른쪽으로 갈 수 있다. 2. 추가적으로 소모되는 메모리의 양..

알고리즘/Study 2022.01.24

[JAVA 자바] contains()를 이용한 문자열 포함 여부 확인/replace()를 이용한 문자열 치환

문자열 포함 여부 확인 contains() 문자열이 특정 문자열을 포함하고 있는지 확인한다. 포함하고 있으면 true를, 아니면 false를 반환하며, 대소문자를 구분한다. import java.io.*; public class Main { public static void main(String[] args) { String str = "Hello my name is hectick, not hectic"; System.out.println(str.contains("hello")); //false 출력 System.out.println(str.contains("Hello")); //true 출력 System.out.println(str.contains("hectick")); //true 출력 } } 문자열..

[JAVA 자바] 비트연산자 & | ^ ~ << >>

비트연산자 비트 연산은 0과 1로 표현된 이진수에 관한 연산으로, 비트연산자는 피연산자를 비트단위로 연산한다. 실수형(float, double)을 제외한 모든 기본형에 사용 가능하다. OR 연산자( | ) 두 개의 피연산자의 해당 비트 중 어느 한 쪽이 1이면 1을 반환하고, 아니면 0을 반환한다. public class Main { public static void main(String[] args) { int A = 13; int B = 4; System.out.println("십진수 : "+ (A) + " -> 이진수 :" + Integer.toBinaryString(A)); System.out.println("십진수 : "+ (B) + " -> 이진수 :" + Integer.toBinaryStri..

[JAVA 자바] Arrays.sort() 를 이용한 배열 정렬(오름차순)

자바에서는 java.util.Arrays 클래스의 sort() 메서드를 이용해 배열을 정렬할 수 있다. JAVA api 문서에 가보면 자세한 설명을 볼 수 있는데, 나는 int형 배열을 정렬하는 경우를 정리해보겠다. 다른 자료형의 경우는 다음 링크에서 찾아보면된다. (util 패키지 -> Arrays 클래스) https://docs.oracle.com/javase/8/docs/api/ Java Platform SE 8 docs.oracle.com 배열 정렬 Arrays.sort() api 문서에 의하면 sort() 메서드의 정렬 알고리즘은 Dual-Pivot Quicksort 이다. 이 알고리즘의 시간복잡도는 평균 O(nlogn)이며 최악의 경우는 O(n^2)지만, 일반적으로 기존의 (one-pivot)..

1 ··· 4 5 6 7 8