배열과 연결 리스트는 언제 차이가 커지는가 Notes 배열과 연결 리스트는 모두 선형 자료구조지만, 성능 특성과 사용 시나리오는 꽤 다르다. 차이는 결국 어디에 강하고 어디에서 비용이 드는가에 있다. 두 구조가 메모리에 놓이는 방식 배열은 원소를 한 덩어리의 연속된 공간에 차례로 둔다. 원소 크기가 같으므로 i번째 원소의 위치는 “시작 주소 + i × 원소 크기”로 바로 계산된다. 연결 리스트는... 2021/01/12 Java
LinkedList로 Deque를 구현할 때 알아야 할 것 Notes Deque는 양쪽 끝에서 삽입과 삭제가 가능한 자료구조다. 이름 그대로 double-ended queue이며, 스택과 큐의 성질을 모두 표현할 수 있다. Deque가 필요한 이유 한쪽 끝만 쓰는 큐나 스택으로는 표현이 애매한 경우가 있다. 앞뒤에서 모두 원소를 넣고 빼야 할 때 슬라이딩 윈도우처럼 양 끝 갱신이 필요한 경우 BFS... 2021/01/12 Java
LinkedList로 Queue를 구현할 때 핵심은 무엇인가 Notes Queue는 먼저 들어온 데이터가 먼저 나가는 FIFO(First-In, First-Out) 구조다. 프린터 작업 대기열, 메시지 처리, BFS 탐색처럼 순서 보장이 필요한 상황에서 자주 쓰인다. Queue의 핵심 연산 enqueue: 뒤에 넣기 dequeue: 앞에서 빼기 peek: 앞 원소 확인 이 세 가지가 자연스럽게 빠르... 2021/01/12 Java
단일, 이중, 환형 연결 리스트는 어떻게 다른가 Notes 연결 리스트는 노드가 다음 노드를 참조하는 방식으로 이어지는 자료구조다. 구현 방식에 따라 단일 연결 리스트, 이중 연결 리스트, 환형 연결 리스트로 나뉜다. 배열은 원소를 메모리에 연속으로 놓고 인덱스로 위치를 계산한다. 연결 리스트는 원소를 각자 흩어진 노드에 담고, 각 노드가 다음 노드의 참조를 들고 있다. 그래서 i번째 원소를 찾으려면 앞에서... 2021/01/12 Java
빅 오(Big-O)와 시간복잡도를 어떻게 봐야 하는가 Notes 알고리즘이나 자료구조를 공부할 때 가장 먼저 만나게 되는 개념이 시간복잡도다. 하지만 실무에서는 빅 오 표기법을 공식을 외우듯 쓰기보다, 입력 크기가 커질 때 어떤 비용이 병목이 되는지를 판단하는 도구로 이해하는 편이 더 중요하다. 시간복잡도와 공간복잡도 시간복잡도: 입력 크기가 증가할 때 실행 시간이 어떻게 늘어나는가 공간복잡도: 입... 2021/01/12 Programming
2021-01-11-TIL TIL 2021-01-11-TIL Json, Bson 제이슨, 비산 Java에서 Random 문자열 생성 https://needneo.tistory.com/23 Java Linked List https://freestrokes.tistory.com/84 자료구조와 알고리즘 빅오 표기법 링크드 리스트 ... 2021/01/11
2021-01-10-TIL TIL 2021-01-10-TIL 나만의 GitHub 프로필 꾸미기 butter-shower.tistory.com/142 GitHub Profile README Generator - arturssmirnovs sujinlee.me/professional-github rahuldkjain/github-profile-readme-generat... 2021/01/10 2021-TIL
2021-01-08-TIL TIL 2021-01-08-TIL 리눅스의 역사 타넨바움 교수가 미닉스를 개발해서 배포했는데, 리누스 토르발즈가 변경 요청을 했지만 받아들이지 않아서 포기하고 혼자서 만들게 되었다. 조금 더 찾아보면, 교육용 OS였던 MINIX는 수정과 재배포에 라이선스 제약이 있었고 16비트 설계라 당시 보급되던 32비트 386 PC에 잘 맞지 않았다. 토르발즈는 1... 2021/01/08 2021-TIL
2021-01-06-TIL TIL 2020-01-06-TIL Today I Learned 자바 문자열 뒤집기 jobc.tistory.com/175 Java의 String은 불변 객체라서 문자열 자체를 뒤집는 메서드가 없다. 대신 변경 가능한 문자열 버퍼인 StringBuilder에 담아 reverse()를 부른 뒤 다시 String으로 꺼낸다. String s = "h... 2021/01/06 2021-TIL
2021-01-05-TIL TIL 2020-01-05-TIL Today I learned Relay 도달거리가 멀리 있는 경우 저항이 커져서 전압이 손실된다. 그런데 릴레이를 중간에 여러개 달아주면 계속 전압이 증폭되어 최초의 전압을 유지할 수 있다. Relay -> 진공관 -> Transistor -> ICE AND 입력을 두 개 받고 한 relay의 출력을... 2021/01/05 2021-TIL