본문 바로가기

전체 글

(118)
[JAVA] 자동 정렬해주는 Map TreeMap TreeMap공식문서에서의 TreeMap 소개A Red-Black tree based NavigableMap implementation.한국어로 번역하면 아래와 같다.TreeMap 클래스는 빨간-검은색 트리 (Red-Black Tree)를 기반으로 구현된 NavigableMap 인터페이스의 구현체다.그렇다면 Red-Black Tree에 대해 알아보자.Red-Black TreeRed-Black Tree는 정렬 된 정보를 빠르게 저장해주는 특수한 이진 검색 트리 데이터 구조를 가진다.이진 트리는 최악의 경우 트리의 높이(N)만큼 의 시간 복잡도를 가진다.반면 레드-블랙 트리의 경우 부모 노드보다 작은 값을 갖는 노드는 좌측으로, 큰 값을 갖는 노드는 우측 자식으로 배치한다.이를 통하여 트리가 균등하게 되어 ..
[Baekjoon 11652] 카드 - Java [Silver IV] 카드 - 11652 문제 링크 성능 요약 메모리: 32528 KB, 시간: 392 ms 분류 자료 구조, 해시를 사용한 집합과 맵, 정렬 제출 일자 2024년 4월 18일 13:32:51 문제 설명 준규는 숫자 카드 N장을 가지고 있다. 숫자 카드에는 정수가 하나 적혀있는데, 적혀있는 수는 -262보다 크거나 같고, 262보다 작거나 같다. 준규가 가지고 있는 카드가 주어졌을 때, 가장 많이 가지고 있는 정수를 구하는 프로그램을 작성하시오. 만약, 가장 많이 가지고 있는 정수가 여러 가지라면, 작은 것을 출력한다. 입력 첫째 줄에 준규가 가지고 있는 숫자 카드의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 출력..
[Baekjoon 2839] 설탕 배달 - Java [Silver IV] 설탕 배달 - 2839 문제 링크 성능 요약 메모리: 14212 KB, 시간: 120 ms 분류 다이나믹 프로그래밍, 그리디 알고리즘, 수학 제출 일자 2024년 3월 7일 10:16:53 문제 설명 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다. 상근이가 설탕을 정확하게 N킬..
[Git] 자주 사용하는 Git 코드들 자주 까먹어서 기록하는 용도로 사용 로컬 -> Git 로컬에 있는 Git 파일을 올리는 방법 add를 통해 깃에 올릴 파일들 설정 commit를 통해 코멘트를 남김 push를 사용해 원격 저장소에 넣기 Git에 올릴 파일들 설정 git add . 원격 저장소에 저장하며 들어갈 코맨트 입력 git commit -m ["코멘트 입력"] 원격 저장소에 push git push origin master 만약 폴더 도중에 git 저장소와 연결하고 싶다면? remote를 사용하면 됨 git remote add origin [저장소 주소] 브랜치에 push하는 법 git push origin develop Git -> 로컬 프로젝트 다운받기 git clone [깃허브 레포지토리 주소] 원격에서 수정된 내용 받아오기 ..
[Python] 날짜와 시간을 다루는 모듈 - datetime datetime 이란? 파이썬 공식문서에서 datetime 모듈은 아래와 같이 정의되어 있다. The datetime module provides classes for representing date and time information. It also provides functions for manipulating date and time objects, and for formatting and parsing date and time strings. 한글로 번역하면 아래와 같다. datetime 모듈은 날짜와 시간 정보를 표현하는 클래스와 날짜와 시간 객체를 조작하고, 날짜와 시간 문자열을 포맷하고 구문 분석하는 함수를 제공하는 모듈이다. 즉, 날짜와 시간을 서로 비교하거나 연산을 하는데 매우 편리하게..
[Baekjoon 1158] 요세푸스 문제 - Python [Silver IV] 요세푸스 문제 - 1158 문제 링크 성능 요약 메모리: 31120 KB, 시간: 44 ms 분류 자료 구조, 구현, 큐 제출 일자 2023년 11월 26일 12:00:20 문제 설명 요세푸스 문제는 다음과 같다. 1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 K(≤ N)가 주어진다. 이제 순서대로 K번째 사람을 제거한다. 한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 이 과정을 계속해 나간다. 이 과정은 N명의 사람이 모두 제거될 때까지 계속된다. 원에서 사람들이 제거되는 순서를 (N, K)-요세푸스 순열이라고 한다. 예를 들어 (7, 3)-요세푸스 순열은 이다. N과 K가 주어지면 (N, K)-요세푸스 순열을 구하는 프로그램을 작성하시오. 입력 첫째 ..
[Baekjoon 3182] 한동이는 공부가 하기 싫어! - JAVA [Silver III] 한동이는 공부가 하기 싫어! - 3182 문제 링크 성능 요약 메모리: 14348 KB, 시간: 148 ms 분류 브루트포스 알고리즘, 그래프 이론, 그래프 탐색 제출 일자 2023년 11월 19일 12:31:07 문제 설명 H-ALGO 회원인 한동이는 공부하는것을 좋아하지 않는다. 하지만 약삭빠르게도 한동이는 공부도 하지 않으면서 어려운 시험을 통과하고 싶어한다. 그러던 와중 어느 날, 한동이의 동기가 한동이에게 선배들 중 누군가가 시험의 답을 알고있다는 꿀정보를 알려주었다. 하지만 안타깝게도 그 정보는 사실이 아니어서 선배들조차도 정답은 알지 못하고 다른 누군가가 알고 있을거 같다는 정보만 알고 있는 것이었다. 한동이는 택민이에게 시험 정답을 물어보았다. 택민이는 답을 모른다고..
[JAVA] 반복자 Iterator을 사용해 컬렉션(List, Set, Map) 순회하기 Iterator에 대한 Java Oracle 문서에 정의된 내용은 아래와 같다. An iterator over a collection. An iterator allows the caller to traverse the elements of a collection without exposing the underlying implementation. 번역하면 아래와 같다. 컬렉션에 대한 반복자다. 반복자는 컬렉션의 요소를 노출하지 않고 순회할 수 있도록 한다. 즉, 간단하게 말하자면 List, Set, Map, Stack, Queue와 같은 컬렉션들을 순회하게 해준다. Iterator과 반복문의 차이점 엥? 근데 반복문으로 순회를 하면 되는거 아냐?란 생각이 들 수 있다. Iterator이 동작하는 순서는 ..