Jun의 개발세상

Jun의 개발세상

  • 분류 전체보기 (11)
    • Project (3)
      • Trouble Shooting (0)
    • Study (7)
      • Java & OOP (0)
      • Spring (0)
      • Database (1)
      • Algorithm (5)
      • Network (0)
      • BaekJoon (1)
    • Review (1)
  • 홈
  • 태그
  • 방명록
RSS 피드
로그인
로그아웃 글쓰기 관리

Jun의 개발세상

컨텐츠 검색

태그

정규화 회고 알고리즘 이진트리 후위표기식 이진탐색 BCNF 코딩테스트 스택 리스트 이분탐색 제1정규화 SQLD 자료구조 중위표기식 제3정규화 자바 정규형 트리 제2정규화

최근글

댓글

공지사항

아카이브

전체 글(11)

  • 😥 24년 겨울방학을 돌아보며

    나름대로 2024년도 겨울방학을 중요하게 보낸다고 노력해보았지만,다른 사람들과 비교할 때 그렇게 알차게 보내지는 못한 것 같다. 원래 겨울방학이 끝날 때 쯤에 한번 회고를 해보려고 했지만, 살짝 늦게 작성하게 되었다. 1. 방학동안 알고리즘 공부앞으로 취업, 좋은 부트캠프 지원을 하게 될 때 반드시 보게된다는 코딩테스트를 통과하기 위해서는알고리즘 공부를 꾸준히 해야겠다고 생각하게 되었다. 방학동안 매일 적어도 한문제씩 풀자는 마음으로 방학을 보내게 되었다. 불가피하게 불가능했던 일정을 제외하고는 매일 최소 1문제 이상은 풀려고 노력했다.사실 방학전에 목표했던 것은 백준 티어가 있다는 것을 알게되고 골드가 되도록 노력해보자였다.결론적으로 볼때 골드 달성에는 성공했지만, 티어가 전부가 아니라는 것을 다시 한..

    2025.03.16
  • [알고리즘] 이진탐색 (이분탐색)

    오늘은 이진오늘은 이진탐색 (이분탐색) 에 대해 공부했던 내용을 정리해보려고 한다. 이진탐색이란?이진탐색 (이분탐색) 은 특정 데이터를 탐색하는데 있어 효율적인 방법 중 하나인 알고리즘이다.이진탐색을 수행하기 위해서는 데이터들이 정렬되어 있어야 한다. 이진탐색은 다음과 같은 순서대로 진행한다.1. 데이터 중 가운데 인덱스와, left 인덱스 (초기 값: 0) 과 right 인덱스 (초기 값: 데이터 배열의 크기 - 1) 을 지정한다.2. 고른 중앙 값 과 찾고자 하는 값을 비교한다.3-1. 2의 결과가 중앙 값 > 찾고자 하는 값인 경우 : left 인덱스를 mid 인덱스 + 1 만큼으로 수정한다.3-2. 2의 결과가 중앙 값 4. 이후 left 인덱스 값이 right 인덱스 값보다 큰 경우가 되기 전까..

    2025.01.18
  • [자료구조] 트리

    오늘은 트리에 대해 배웠던 내용들을 정리해보려고 한다. 트리란?트리는 이름처럼 나무랑 비슷하게 생긴 구조이다.쉽게 예시를 들어보면 어느 조직의 조직도처럼 되어있다고 생각하면 편하다. 위 그림은 완전이진트리이다. 위 그림을 바탕으로 기본 용어들을 살펴보자 Root Node : 부모가 없는 노드를 의미한다. 즉 맨 위에 위치한 노드를 의미한다 (그림에서는 A)트리에는 하나밖에 없다. Leaf Node : 자식이 없는 노드로 트리 맨 하단에 위치한 노드를 의미한다. (그림에서는 D ,E ,C) edge / link : 각 노드를 잇는 선을 의미한다. Parent Node : 각 서브트리에서 부모 역할(상단) 에 있는 노드를 의미한다 B D E 트리를 보면 여기서는 B가 부모노드이다. Child Node : 각..

    2025.01.14
  • [자료구조] 큐

    오늘은 큐에 대해 배웠던 내용들을 정리해보려고 한다. 큐?큐는 선입선출(FIFO) 방식을 따르는 자료구조이다. / First In First Out즉 처음 들어온 데이터가 제일 먼저 나가게 된다.스택에 PUSH 와 POP 이 있다면 큐에는 Enqueue 와 Dequeue 가 있다. 큐의 대표적인 메소드Java 에서는 기본적으로 Queue 를 제공해준다. 같이 제공되는 메소드들을 정리해보았다. add()큐에 데이터를 추가 / 실패 시 예외오류 발생 offer() 큐에 데이터를 추가 / 실패 시 false 리턴remove()큐에서 데이터를 삭제 / 실패 시 예외오류 발생poll()큐에서 데이터를 삭제 / 해당 값을 리턴 없으면 Null 리턴clear()큐의 모든 값들을 제거peek()큐에서 가장 먼저 들어간..

    2025.01.13
  • [자료구조] 스택

    오늘은 스택에 대해 배웠던 내용들을 정리해보려고 한다. 스택이란대표적인 자료구조 중 하나로 후입선출(LIFO) 방식의 자료구조이다 / Last In First Out말 그대로 가장 마지막에 넣은 요소가 가장 먼저 나오게 되는 방식이다. 스택의 대표적인 연산push()스택에 데이터 삽입pop()스택에서 데이터 꺼내기peek()가장 상단에 있는 데이터 반환empty()스택이 비었는지 안 비었는지 반환size()스택의 크기를 반환search(Object o)파라미터 객체를 찾아서 해당 인덱스(1부터 시작) 를 반환 / 없으면 -1......Java 에서 기본적으로 제공하는 Stack 메소드들이다.  후위표기식 과 중위표기식대표적으로 스택 자료구조를 배우게 되면 활용할 수 있는 주제이다. 먼저 후위표기식과 중위..

    2025.01.13
  • [백준] StringBuilder / StringTokenizer / BufferReader / BufferWriter

    오늘은 Java 로 백준 문제를 풀면서 많이 마주치게 된 내용들에 대해 정리해보려고 한다. BufferReader 와 BufferWriter 백준 문제를 풀다보면 시간제한이 걸려있는 문제들을 많이 마주하게 된다.실제로도 여러 문제들을 풀면서 시간제한을 이유로 오답처리 된 경우가 많았다. 구글을 통해 찾아보니...기존에 Scanner 를 이용하여 입력받던 문제로 인하여 시간 초과가 발생하는 경우가 있었다. 이런 문제를 해결하기 위해서는 BufferReader 와 BufferWriter 를 사용해야 한다.먼저, 위 두개의 원리는 쉽게 말하면 바로바로 입출력을 하는 것이 아니라,네트워크에서처럼 버퍼에 입출력들을 저장해두고 가득 찬 경우 혹은 개행 문자의 경우 버퍼에 있는 내용들을 입출력한다.BufferedRe..

    2025.01.13
  • [자료구조] 리스트

    오늘은 자료구조의 기본 내용 중 하나인 리스트에 대해 정리해보려고 한다. 리스트란?리스트는 쉽게 말하면 기차처럼 요소와 요소가 연결되어 있는 것을 말한다.이때 가장 처음에 있는 요소(노드)는 Head, 가장 마지막은 Tail 라고 부른다.노드는 안에 data 와 다음 노드의 위치를 가지고 있는 포인터로 구성된다. 배열 vs 리스트 ?리스트는 배열과 비슷하지만, 배열과 다르게 각 요소를 추가 / 삽입 / 삭제 할 때 유리하다는 장점이 있다.배열의 경우에는 배열 선언 시 크기도 같이 선언해주어야 하지만, 리스트는 그럴 필요가 없다.하지만, 배열과 다르게 리스트에서는 각 요소에 접근하는데 시간이 오래 걸리므로 요소의 변경이 많은 경우 유리하게 사용할 수 있다. 리스트의 종류?리스트의 종류는 크게 단순연결리스트..

    2025.01.12
  • [데이터베이스] 정규화에 대해서 알아보자

    데이터베이스 정규화에는 여러 과정이 있지만,오늘은 학부 수준에서 배운 제1 정규형부터 BCNF 형까지 정리해보려고 한다.  ✔  정규화란? 데이터베이스를 설계하다 보면, 여러 이상현상들이 발생할 수 있다. 설계상 문제로 인해 데이터를 삽입할 때 불필요한 데이터를 같이 삽입해야 한다거나혹은 중복된 튜플들이 있는 경우, 데이터를 변경하였을 때 일부만 변경되는 경우혹은 설계상 문제로 인해 데이터 삭제 시 필요한 데이터도 같이 삭제되는 경우가 발생한다. 이러한 이상현상들이 발생하지 않도록 데이터베이스를 설계하는 과정을 의미한다.  ✔  정규화?  정규형? 정규화에 대해 공부하면 등장하는 개념은 바로 정규형이다.쉽게 말하면 정규화를 통해 나온 결과가 정규형이다. 제1정규화 후 -> 제1정규형제2정규화 후 -> 제..

    2024.12.30
  • 시간표생성프로그램 - 개발 후기

    시간표생성프로그램을 약  5일간 개발하면서 느꼈던 점이나 배웠던 점, 어려웠던 점을 기술해보려고 한다. 문제점 1. 모든 조합이 생성되지 않는다.... (가장 큰 문제)처음에 조합이 생성되어 시간표들이 생성되었을 때는, 소리를 질렀다.나도 이제 수동으로 조합을 안해봐도 되는구나....  내가 이번 학기 수강신청을 할 시간표를 확인해보니... 이 시간표는 조합에 포함되어있지 않았다. ㅜㅜ문제점을 찾기위해 구현한 코드를 모두 살펴보았을때 의심되는 부분을 발견했다. 내가 기존에 설계한 조합 알고리즘은 그저 단순히 classes 에 저장된 수업들을 중첩반복문을 통해 combinedResult 에 넣는 방식이었다.이 과정에서 같은 과목이 이미 추가되어있지 않고, 동일 시간이 아닌 경우만 조합이 된다.하지만 동일 ..

    2024.08.21
  • 시간표생성프로그램 - 알고리즘 구현

    다음 방식으로 알고리즘을 구현하였다. 1. 사용자가 입력한 수업들은 classes 라는 객체에 저장된다.-> txt파일을 통해 일괄적으로 등록을 할 수 있다.FileReader 를 이용하여 , 를 기준으로 트리밍하여, 각 내용들을 객체의 key에 대한 value 값으로 저장하도록 하였다. 2. classes에 저장된 수업들로부터 생성된 시간표 조합은 combineResult 라는 객체에 저장된다. 3. 수업을 조합하는 방식은 다음과 같다.-> 먼저 등록된 수업 중 필수로 포함되도록 체크되어있는 수업을 먼저 combineResult 객체를 생성하여 저장하도록 한다.이때, 중복으로 똑같은 과목이 필수로 포함되거나,. 시간이 겹치는 경우는 추가하지 않고 alert을 이용하여 안내를 띄운    후 window...

    2024.08.16
이전
1 2
다음
GitHub
© EverJun2

티스토리툴바