전체 글 138

자료구조/알고리즘 - 알고리즘 part1

1.알고리즘(Algorithm) -문제를 해결하는 최선의 선택 -아래의 순서를 생각하며 문제 해결하기 (1)문제 이해하기(문제 설명, 입출력예시, 제한 및 주의사항 등) (2)전략 세우기(의사코드) (3)전략을 코드로 구현하기 1-1.의사코드(Pseudocode) -프로그래밍 언어로 코드를 작성하기 전에 우리가 쓰는 일상 언어로 프로그램이 작동하는 논리를 먼저 작성하는 것 -장점 (1)시간 단축 (2)디버깅에 용이 (3)프로그래밍 언어를 모르는 사람과 소통할 수 있음 -컴퓨터는 단순하게 0과 1로만 이루어져 있는 기계이기 때문에 기초적인 부분부터 구체적이고 상세하게 명령해야함 -개인의 기호에 맞게 자연어와 프로그래밍 언어를 섞어서 사용하되 자신만의 원칙을 만들어, 일관성이 있으며 다른 사람도 이해할 수 ..

부트캠프 2023.01.19

자료구조/알고리즘 - Tree traversal, BFS/DFS

1-6.트리 순회(Tree traversal) -특정 목적을 위해 트리의 모든 노드를 한 번씩 방문하는 것 -트리 구조는 계층적 구조라는 특별한 특징을 가지기 때문에, 모든 노드를 순회하는 방법엔 크게 세 가지가 있음 (1)전위 순회(Preorder traverse) (2)중위 순회(inorder traverse) (3)후위 순회(postorder traverse) +균형 이진 탐색 트리 : 이진 탐색 트리의 문제점을 보완하고자 나온 트리 *왼쪽 서브 트리의 높이와 오른쪽 서브 트리의 높이 차이가 1 이하인 것이 특징으로, 이러한 높이 차이를 균형인수(Balance Factor)라고 함. 1-7.BFS / DFS -그래프의 탐색은 하나의 정점에서 시작하여 그래프의 모든 정점들을 한 번씩 방문(탐색)하는 ..

부트캠프 2023.01.18

momo study(23.01.17)

오늘은 스택/큐 문제를 풀어보고 하나하나 복습했다. 전체적으로 문제가 어렵다고 느꼈는데 개인적으로 스택은 조금 더 할만하다고 느끼고, 큐는 학습이 부족하다고 느꼈다. 1.스택 문제(브라우저 앞으로 가기 뒤로 가기) - String[] actions와 String start를 받아 actions에 대문자 영어가 들어가면 새로운 인터넷 페이지를, 1을 입력받으면 앞으로 가기, -1을 입력 받으면 뒤로 가기를 실행하는 클래스를 생성하는 문제였다. 수도코드를 레퍼런스와 거의 유사하게 적었던 문제로, 아쉽게도 stack의 push()와 pop()부분의 이해가 살짝 부족해 푸는데 시간이 많이 걸렸었다. 2.큐 문제(박스 포장) - 큐의 기본 개념에 뒷사람이 포장을 전부 끝냈어도 앞사람이 끝내지 못하면 기다려야 한다..

코딩 스터디 2023.01.17

자료구조/알고리즘 - Tree, Graph, Binary

1-3.트리(Tree) -그래프의 여러 구조 중 단방향 그래프의 한 구조로, 하나의 뿌리로부터 가지가 사방으로 뻗은 형태 -데이터가 바로 아래에 있는 하나 이상의 데이터에 무방향으로 연결된 계층적 자료구조 -데이터를 순차적으로 나열시킨 선형 구조가 아닌, 하나의 데이터 아래에 여러 개의 데이터가 존재할 수 있는 비선형 구조 -Tree의 구조와 특징 (1)루트(Root) : 하나의 꼭짓점 데이터 (2)간선(Edge) : 여러 개의 데이터를 연결하는 선 (3)노드(Node) : 각 데이터를 지칭하며, 두 개의 노드가 상하 계층으로 연결되면 부모/자식 관계를 가짐 *부모 노드(Parent Node), 자식 노드(Child Node), 리프 노드(Leaf Node : 자식이 없는 노드) (4)깊이(Depth) ..

부트캠프 2023.01.17

momo study(23.01.16)

1. 스택 문제 풀이 조건 새로운 페이지로 접속할 경우 prev 스택에 원래 있던 페이지를 넣고 next 스택을 비웁니다. 뒤로 가기 버튼을 누를 경우 원래 있던 페이지를 next 스택에 넣고 prev 스택의 top에 있는 페이지로 이동한 뒤 prev 스택의 값을 pop 합니다. 앞으로 가기 버튼을 누를 경우 원래 있던 페이지를 prev 스택에 넣고 next 스택의 top에 있는 페이지로 이동한 뒤 next 스택의 값을 pop 합니다. 브라우저에서 뒤로 가기, 앞으로 가기 버튼이 비활성화일 경우(클릭이 되지 않을 경우)에는 스택에 push 하지 않습니다. 입력 인자 1: actions(String 타입을 요소로 갖는 브라우저에서 행동한 순서를 차례대로 나열한 배열) 인자 2: start(String 타입..

코딩 스터디 2023.01.16

자료구조/알고리즘 - Stack, Queue

데이터(data) : 문자, 숫자, 소리, 그림 등 실생활을 구성하고 있는 모든 값 1.자료구조 : 여러 데이터의 묶음을 저장하고, 사용하는 방법을 정의한 것 -대부분의 자료구조는 특정한 상황에 놓인 문제를 해결하는데에 특화되어 있음 -많은 자료구조를 알아두면, 상황에 적합한 자료구조를 빠르고 정확하게 적용하게 문제를 해결할 수 있음 1-1.스택(Stack) -쌓다, 포개지다와 같은 뜻으로, 데이터를 순서대로 쌓는 자료구조 -대표적인 예시로 프링글스 -Stack의 특징 (1)LIFO(Last In First Out) : 후입선출 (2)데이터를 하나씩 넣고 하나씩 뺄 수 있음(한 꺼번에 여러 개 불가능) (3)하나의 입출력 방향을 가짐 -Stack의 메서드 (1)push() : 스택에 데이터 추가 (2)p..

부트캠프 2023.01.16

momo study(23.01.15)

자바 기초 복습 및 Optional 파트의 코드로 정리 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 public class Main { public static void main(String[] args) { String str = "This is a string example using StringTokenizer"; StringTokenizer tokenizer = new StringTokenizer(str); //int countTokens() : 남아있는 token의 개수를 반환(전체x 현재o) System.out.println(tokenizer.countTokens()); //7 //boolean hasMoreElements(), hasMoreTokens() ..

코딩 스터디 2023.01.15

momo study(23.01.13)

오늘 스터디 시간에는 1. 데일리 코딩 2번 문제(연이율을 받아 이자율 구하기) 풀기 2. 재귀 함수 12번 문제(배열을 입력 받아 순서가 뒤집힌 배열 리턴) 풀기 3. 오늘 컨텐츠 내용이던 JSON 복습 및 코드 풀이 학습 4. 블로깅 까지 마무리했다. 개인적으로 1번 데일리 코딩 문제를 내 손으로 직접 풀어내서 너무 기뻤다. 이자율과 관련된 문제를 예전에 많이 풀어본 경험이 있어서 연이율을 100으로 나눠 이자율로 변환해 계산하자고 판단했던 것이 문제 풀이에 큰 도움이 되었다. 하지만 2,3번 내용이 복습을 해봤지만 모두 이해하지 못한 것 같아 2번은 다음 주 월요일에, 3번은 주말 동안 다시 복습할 예정이다.

코딩 스터디 2023.01.13

코드 복습 - 이자율 구하기

부트캠프 컨텐츠 '데일리 코딩' 중 오늘의 문제를 가져와봤다. 1.문제 : 연이율을 입력받아 원금이 2배 이상이 될 때까지 걸리는 시간(년)을 리턴 2.입력 : 인자 1(interestRate) -> double 타입의 연이율 (%) 3.출력 : int 타입을 리턴 4.입출력 예시 int output = computeWhenDouble(7); System.out.println(output); // --> 11 output = computeWhenDouble(10); System.out.println(output); // --> 8 5.코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 public class Solution { public in..

각종 문제들 2023.01.13

자료구조/알고리즘 - JSON

1.JSON(JavaScript Object Notation) -데이터 교환을 위해 만들어진 객체 형태의 포맷 -서로 다른 프로그램끼리 데이터를 교환할 수 있도록 매개함 -jackson라이브러리에서 제공하는 ObjectMapper 클래스를 사용하여 객체를 JSON형태로 변경하는 방법 *이외에도 다양한 방법이 있으니 추후 검색해볼 것 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Map message = new HashMap(){{ put("sender", "김코딩"); put("receiver", "박해커"); put("message", "밥먹을래?"); put("createdAt", "2021-01-12,10:10:10"); }}; ObjectMapper mapper = new Object..

부트캠프 2023.01.13