본문 바로가기

백준/자바4

백준 자바 14247 나무 자르기 로직은 간단합니다. 초기 나무 길이가 4이고 자라는 길이가 6일 때 만약 5일 후에 자른다면 4 + 6 * 4 로 28이고 5일 후에 다시 자른다면 30만큼을 자르게 되어 총 58만큼 자르게 됩니다. 중간에 자르지 않고 10일 후에 자르게 된다면? 4 + 6 * 9로 똑같이 58만큼 자르게 됩니다. 그러면 굳이 자라는 길이가 제일 긴 나무를 처음에 자를 필요가 없게 됩니다. 자라는 길이가 제일 적은 것부터 자르게 되면 되는 것입니다. 저는 자라는 길이를 정렬해주는 것을 class를 이용하여 정렬 시켜주어봤습니다. public class Baek14247 { public static class ATree{ int Hi; int Ai; } public static void main(String[] args).. 2022. 5. 10.
백준 1637 날카로운 눈 자바 https://www.acmicpc.net/problem/1637 1637번: 날카로운 눈 첫째 줄에 입력의 개수 N이 주어진다. N은 1이상 20,000이하인 수이다. 그 다음 줄부터 N줄에 걸쳐 세 개의 정수 A, C, B가 주어지는데, 이것은 A, A+B, A+2B, ..., A+kB (단, A+kB ≦ C) 의 정수들이 정수더미 www.acmicpc.net 정수더미 속에서 홀수 개 존재하는 정수를 찾으면 되는 문제입니다. 예제 입력을 보면 A C B 가 차례로 1 10 1 4 4 1 1 5 1 6 10 1 이 있습니다. 나오는 정수들을 살펴보면 1 2 3 4 5 6 7 8 9 10 4 1 2 3 4 5 6 7 8 9 10 정수더미는 위와 같이 있습니다. 이 정수더미를 1 이하의 수의 개수, 2 이.. 2022. 3. 20.
백준 15736 자바 청기 백기 (72ms 가장 빠른 코드!) 배수마다 깃발을 뒤집는 구조 1은 약수가 1개, 한번 뒤집힌다. 2는 약수가 2개 두번 뒤집힌다. -> 두 번 뒤집히면 원래 그대로 청색 4는 약수가 3개, 세 번 뒤집힌다. 5는 약수가 2개, 두 번 뒤집힌다. 6은 약수가 4개, 4 번 뒤집힌다. ... 9는 약수가 3개, 세 번 뒤집힌다. 규칙을 발견하셨나요?? 루트 N 이 정수 일때 약수가 홀 수로 나오게 됩니다.! (= 약수의 제곱이 N일 때!) 만약에 N이 24라면 백기가 위로 올라오는 수는? 1, 4, 9, 16 입니다. 모두 루트를 해보면 1,2,3,4 입니다. 반대로 생각해보면 N보다 작은 제곱수를 찾으면 됩니다. 그렇다면 아래와 같이 제곱이 N보다 커지기 전까지 count를 해주면 나오게 됩니다! import java.io.Buffere.. 2022. 2. 24.
백준 자바 2775번 일차원 배열만 사용하여 메모리 줄이기 백준 자바 2775번 부녀회장이 될테야 이 문제를 찾아보면 대부분 2차원 배열을 사용하여 푸는 것을 볼 수 있습니다. 1차원 배열만 사용하여 메모리를 줄여서 푸는 방법을 가져왔습니다. 2차원 배열을 사용하는 것보다 메모리는 1000KB 적게 나옵니다. (하지만 만약에 데이터 크기가 크다면 훨씬 더 나겠죠?? 조금이라도 줄여봅시다!) public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWr.. 2022. 1. 26.