본문 바로가기

분류 전체보기108

BitSet BitSet이라는 클래스를 새롭게 알게되어 간단하게 정리를 해봤습니다. BitSet이란? Bit로 이루어진 Vector로 boolean 배열처럼 사용 가능합니다. boolean 배열과 다른 점은 boolean은 1byte지만 bit는 1bit이기 때문에 한 값당 7bit를 줄일 수 있습니다. 관련 메서드 Set 해당 비트 true Get 해당 비트 값 가져옴 Flip 뒤집기 GetRange 복사 예제 - Set & Get public static void main(String[] args) { BitSet bs = new BitSet(); // Set & Get System.out.println("Set & Get\n"); System.out.println("10 값 : "+bs.get(10)); bs... 2021. 3. 7.
백준 1476번 : 날짜 계산 문제 www.acmicpc.net/problem/1476 1476번: 날짜 계산 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타 www.acmicpc.net 구현 방법 이 문제.. 어려운 문제는 아니지만 머리가 꽤나 복잡했습니다.. 처음 생각했던 풀이가 복잡했기 때문이겠죠..? 처음에는 범위가 가장 큰 S를 기준으로 잡고 현재 년도는 S년부터 시작하였습니다. S년,, 했다 안되면 현재년도는 S*2 -> S*3 이런식으로 풀어나갔습니다. E와 M값은 직접 수식을 만들어줬습니다.. 각자의 범위를 벗어나면 1부터 다시 시작기 때문에 현재의 값 + 현재 추정하는 년도를 범.. 2021. 3. 6.
백준 1475번 : 방 번호 문제 www.acmicpc.net/problem/1475 1475번: 방 번호 첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수 또는 0이다. www.acmicpc.net 구현 방법 수가 겹친다면 한 세트는 0~9까지 하나씩 밖에 없으므로 필요한 세트 개수의 최솟값은 0~9까지의 숫자 중 빈도수가 제일 높은 값입니다. 또한 6은 9로도 쓸 수 있고 9는 6으로도 쓸 수 있으므로 현재까지의 6, 9 개수 중 더 작은 값에 추가를 해주면 됩니다. 0~9까지 숫자가 몇 개가 있는지 체크할 수 있게 boolean 배열을 10크기만큼 생성해주었습니다. 숫자를 하나씩 보며 해당 숫자의 인덱스에 개수를 더해줍니다. 모든 수의 탐색이 끝나면 체크한 배열에서 가장 큰 값을 출력해.. 2021. 3. 6.
백준 1292번 : 쉽게 푸는 문제 문제 www.acmicpc.net/problem/1292 1292번: 쉽게 푸는 문제 첫째 줄에 구간의 시작과 끝을 나타내는 정수 A, B(1 ≤ A ≤ B ≤ 1,000)가 주어진다. 즉, 수열에서 A번째 숫자부터 B번째 숫자까지 합을 구하면 된다. www.acmicpc.net 구현 방법 구간합으로 구현하였습니다! 단순하게 이중포문으로 구현할 수 있지만 이중포문은 시간복잡도가 O(n), 구간합의 시간복잡도는 O(1)이기 때문에 구간합을 사용해주었습니다. 해당 문제에서는 이중포문으로도 구현 가능합니다! 1은 1번, 2는 2번 3은 3번,.. 씩 더해줘야 하므로 카운트 변수를 만들어서 반복문 i=0 i 2021. 3. 6.