본문 바로가기

분류 전체보기220

Day 28 TIL(Daily Coding, Algorithm with Math) 2022.08.01 1. 오늘의 학습 • Daily Coding • Algorithm with Math • Algorithm with Math 문제 풀이 2. 학습 목표 • 기초 개념을 학습합니다. 🔺 : 순열과 조합에 대한 이해는 되었다. 하지만 아직 나의 언어로 정리한 후 누군가에게 설명을 하기에는 부족하다고 느껴졌다. 아직 이 정도의 수준은 아니다. 조금 더 공부하고 찾아본 후, 나의 언어로 정리하여야 할 필요를 느낀다. 그리고 누군가에게 설명한다는 생각으로 정리해야 나의 것이 되고, 이해도 더 잘 될 것 같다. 좀 더 공부해보자. • 페어와 함께 연습문제를 풀고 제출합니다. 🔺 : 페어분이랑 코드로 풀어보고, 레퍼런스도 참고했다. 그 속에서 이해되지 않는 부분을 같이 찾아보고 공부했다. 특히 Co.. 2022. 8. 1.
Day 27 TIL(Daily Coding, 문제 4문제) 2022. . 1. 오늘의 학습 • Daily Coding • 문제 4문제 3. 돌아보기 🔥 오늘의 마무리 : 솔직히 오늘은 문제를 조금 풀고 많이 쉬었다. 점점 흐트러 지는 중.. 주말의 나야 미안해...(주말에 다 하느라 주중의 나를 매우 원망함.) 얼마나 집중을 못했냐면, 3번 문제가 1번과 2번 보다 쉬웠을 거라고 했는데 난 3번 문제부터 집중을 못해서 못풀었다. 허허.. 근데 알고리즘 이렇게 오래 잡고 있어도 되나 싶다. 레퍼런스를 보려다가도 '좀 더 하면 풀 수 있을 것 같은데'라는 생각이 계속 들다보니 두시간 세시간이 흘렀다. 조금 효율적으로 풀어갈 방법을 간구해야할 것 같다. 하루 종일 문제만 풀다보니, 블로깅을 할 힘도 에너지도 모자랐다. 그러다보니 블로깅도 주말로 미룬... 금요일의 나.. 2022. 7. 31.
[백준 알고리즘] 문제 10718 Q. ACM-ICPC 인터넷 예선, Regional, 그리고 World Finals까지 이미 2회씩 진출해버린 kriii는 미련을 버리지 못하고 왠지 모르게 올해에도 파주 World Finals 준비 캠프에 참여했다. 대회를 뜰 줄 모르는 지박령 kriii를 위해서 격려의 문구를 출력해주자. 출력 ) 두 줄에 걸쳐 "강한친구 대한육군"을 한 줄에 한 번씩 출력한다. 풀어 보기 + IntelliJ 돌려보기 ) public class Test10718{ public static void main(String[] args){ System.out.println("강한친구 대한육군"); System.out.println("강한친구 대한육군"); } } ※ 백준 알고리즘은 Main.java 임. 2022. 7. 28.
Day 26 TIL(Daily Coding, 시간 복잡도, Greedy, BFA, BSA) 보호되어 있는 글 입니다. 2022. 7. 28.
[자료구조] Graph 보호되어 있는 글 입니다. 2022. 7. 27.
[자료구조] Tree 1. 트리(Tree)란 나무를 거꾸로 뒤집어 놓은 듯한 구조 하나의 뿌리로부터 가지가 사방으로 뻗은 형태가 나무와 닮아 있다고 해서 트리 구조 단방향 그래프의 한 구조 데이터가 바로 아래에 있는 하나 이상의 데이터에 무방향으로 연결된 계층적 자료구조 하나의 데이터 아래에 여러 개의 데이터가 존재할 수 있는 비선형 구조 2.Tree의 특징 루트 (root) 트리 구조의 시작점이 되는 노드 노드 (node) 트리 구조를 이루는 모든 개별 데이터 부모 노드, 자식 노드, 리프 노드(자식이 없는 노드) 깊이 (depth) 루트 노드로 부터 하위 특정 노드까지의 깊이 표현 가능 루트 노드는 지면에 있는 것 같이 깊이가 0 높이 (height) 리프 노드를 기준으로 표현 가능 부모노드는 자식 노드의 높이 중 가장 .. 2022. 7. 27.
[자료구조] Queue 1. 큐(Queue)란 Queue : 줄 서서 기다리다, 대기 행렬 FIFO(First In First Out) 혹은 LILO(Last In Last Out) 입출력 방향 고정, 두 곳으로 접근 가능 Queue에 데이터를 넣는 것을 'enqueue' Queue에서 데이터를 꺼내는 것을 'dequeue’ 2. Queue의 특징 FIFO(First In First Out) 먼저 들어간 데이터가 가장 먼저 나오는 선입선출 구조 예 : 톨게이트에 진입 했을 때, 먼저 온 차가 통행료를 내고 먼저 나간다. 데이터는 하나씩 넣고 뺄 수 있음 Queue의 데이터는 아무리 많아도 하나씩 데이터를 넣고 뺌. 한꺼번에 여러 개를 넣거나 뺄 수 없음 두 개의 입출력 방향을 가지고 있음 Queue는 데이터 입출력 방향이 다름.. 2022. 7. 27.
[자료구조] Stack 1. 스택(Stack) 이란 Stack : 쌓다, 쌓이다, 포개지다 데이터를 순서대로 쌓는 자료구조 입력과 출력이 하나의 방향으로 이루어지는 제한적 접근 LIFO(Last In First Out) 혹은 FILO(First In Last Out) Stack에 데이터를 넣는 것을 ‘PUSH’ Stack에서 데이터를 꺼내는 것을 ‘POP’ 2. Stack의 특징 LIFO(Last in First Oust) 먼저 들어간 데이터가 가장 나중에 나오는 후입선출 구조 예 : 좁은 일방통행길에 들어간 자동차가 막다른 길을 만나면, 맨 마지막에 들어온 차부터 나가야 한다. 데이터는 하나씩 넣고 뺄 수 있음 Stack의 데이터는 아무리 많아도 하나씩 데이터를 넣고 뺌. 한꺼번에 여러 개를 넣거나 뺄 수 없음 하나의 입출력.. 2022. 7. 27.
[자료구조] 재귀 함수(Recursive Function) 1. 재귀 함수란? 자기 자신을 호출하는 함수 장점 불필요하게 여러개의 반복문을 사용하지 않기 때문에 코드가 간결해지고, 수정이 용이 변수를 여러개 사용할 필요 없음 단점 코드의 흐름을 직관적으로 판단하기 어렵 반복하여 매서드를 호출하며 지역변수, 매개변수, 반환값을 모두 process stack에 저장 반복문에 비해서 메모리를 더 많이 사용하게 되어 많은 메모리를 사용 메서드를 호출하고 매서드가 종료된 이후에 복귀를 위한 컨텍스트 스위칭 비용이 발생 사용 조건 문제의 크기를 작은 단위로 쪼갤 수 있어야 함 재귀 호출이 종료되는 시점에 존재해야 함 2. 재귀 함수의 흐름 재귀 함수가 호출되면 복사본 생성 >> 복사본들이 실행 3. 재귀 함수의 탈출 재귀 함수는 탈출 조건이 필요하다. (∵한 번 호출되면,.. 2022. 7. 27.
[알고리즘] What is the Algorithm? 알고리즘이란? '알고리즘'이라는 단어를 들어보신 적이 있나요? 유튜브의 시대를 살고 있는 우리에게 알고리즘이라는 단어는 낯선 단어가 아닐 것 입니다. 유튜브는 사용자의 검색 기록, 시청 영상 등을 분석하여 사용자가 흥미가질 만한 영상을 추천해줍니다. 그렇다면 이 알고리즘, 정의는 어떻게 될까요? 알고리즘은 "어떠한 문제를 해결하기 위한 절차의 집합"이라고 볼 수 있습니다. 이렇게 보면 감이 쉽게 잡히지 않습니다. 예를 들어볼까요? 서울역에서 부산 해운대까지 가는 경로를 알아보려고 합니다. 어떻게 해야 할까요? 경로 찾기 알고리즘을 사용하면 됩니다. 마트에서 물건을 찾는 알고리즘이 존재할 수도 있고, 음식을 만드는 알고리즘이 존재할 수도 있습니다. 새로운 음식을 만들 때, 레시피를 찾아보고 레시피의 순서.. 2022. 7. 27.
StringBuffer VS StringBuilder 1. StringBuffer과 StringBuilder 공통점 크기가 유연하게 변하는 가변적인 특성 제공하는 메서드가 같고 사용법도 동일 차이점 동기화의 유무 StringBuffer 각 메소드 별로 synchronized keyword가 존재 멀티 스레드 상태에서 동기화를 지원 StringBuilder 단일 스레드 환경에서만 사용하도록 설계 StringBuffer보다 속도는 더 빠름 현업에서는 언제 멀티스레드 환경에서 돌아가지 알지 못하기에 안정적인 StringBuffer로 통일하여 코딩하는 것을 추천 2022. 7. 27.
Day 25 TIL(Daily Coding, Tree Traversal, BFS, DFS) 2022.07.27 1. 오늘의 학습 • Daily Coding • Tree Traversal • BFS/ DFS 2. 학습 목표 • 자료구조를 활용하여 알고리즘 문제에 접근할 ❌ : BFS와 DFS는 정말 접근하기 아직 너무 어려운 것 같다. 구현에 관련해서, 예시에 관련해서, 개념에 관련해서 좀 더 차근히 차분히 찾아보고 정리해야 할 것 같다. 계속 정리 얘기를 하는데, 정리가 너무 너무 중요하다. 나는 정리를 하면서 다시 새기는 타입이기 때문에 무조건 무조건 해야한다. 3. 돌아보기 1️⃣ Daily Coding : 오늘 데일리 코딩을 하면서 StringBuffer와 StringBuilder의 차이에 대해서 찾아봤다. 둘의 차이에 대해서 정말 몰라서 검색해 본 것이다. 이 부분은 따로 정리를 해서 .. 2022. 7. 27.