본문 바로가기

자바 자료구조 & 알고리즘

(16)
백준 1978번 - 소수 찾기 소수 찾기 문제 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. 입력 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. 4 1 3 5 7 출력 주어진 수들 중 소수의 개수를 출력한다. 3 내 코드 package com.heejin.baekjoon.ex09; import java.util.Scanner; public class No1978 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); boolean[] sosus = sosus(1, 1000); int num = sc.nextInt(); int count ..
백준 1712번 - 손익분기점 문제월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 인건비 등 총 B만원의 가변 비용이 든다고 한다.예를 들어 A=1,000, B=70이라고 하자. 이 경우 노트북을 한 대 생산하는 데는 총 1,070만원이 들며, 열 대 생산하는 데는 총 1,700만원이 든다.노트북 가격이 C만원으로 책정되었다고 한다. 일반적으로 생산 대수를 늘려 가다 보면 어느 순간 총 수입(판매비용)이 총 비용(=고정비용+가변비용)보다 많아지게 된다. 최초로 총 수입이 총 비용보다 많아져 이익이 발생하는 지점을 손익분기점(BREAK-EVEN POINT)이라고 한다.A, B, C가 주어졌을 때,..
백준 1011번 - Fly me to the Alpha Centauri 문제 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행사가 되어 새로운 세계에 발을 내려 놓는 영광의 순간을 기다리고 있다. 그가 탑승하게 될 우주선은 Alpha Centauri라는 새로운 인류의 보금자리를 개척하기 위한 대규모 생활 유지 시스템을 탑재하고 있기 때문에, 그 크기와 질량이 엄청난 이유로 최신기술력을 총 동원하여 개발한 공간이동 장치를 탑재하였다. 하지만 이 공간이동 장치는 이동 거리를 급격하게 늘릴 경우 기계에 심각한 결함이 발생하는 단점이 있어서, 이전 작동시기에 k광년을 이동하였을 때는 k-1 , k 혹은 k+1 광년만을 다시 이동할 수 ..
백준 2775번 - 부녀회장이 될테야 문제평소 반상회에 참석하는 것을 좋아하는 주희는 이번 기회에 부녀회장이 되고 싶어 각 층의 사람들을 불러 모아 반상회를 주최하려고 한다.이 아파트에 거주를 하려면 조건이 있는데, “a층의 b호에 살려면 자신의 아래(a-1)층의 1호부터 b호까지 사람들의 수의 합만큼 사람들을 데려와 살아야 한다” 는 계약 조항을 꼭 지키고 들어와야 한다.아파트에 비어있는 집은 없고 모든 거주민들이 이 계약 조건을 지키고 왔다고 가정했을 때, 주어지는 양의 정수 k와 n에 대해 k층에 n호에는 몇 명이 살고 있는지 출력하라. 단, 아파트에는 0층부터 있고 각층에는 1호부터 있으며, 0층의 i호에는 i명이 산다.입력첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k,..
백준 2869번 - 달팽이는 올라가고 싶다 문제 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다. 달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) 2 1 5 출력 첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다. 4 내 코드 이게 까다로운 점은 마음같아선 그냥 하루에 올라가는 길이 즉, up - down으로 목표 거리를 나눠주고 싶지만, 대부분의 경우, 마지막 날에는 낮에 올라가는 도중에 목표..
백준 2839번 - 설탕 배달 문제상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다.상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다.상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오.입력첫째 줄에 N이 주어진다. (3 ≤ N ≤ 5000)18출력상근이가 배달하는 봉지의 최소 개수를 출력한다. 만약, 정확하게 N..
자바로 배우는 핵심 자료구조와 알고리즘 : 2장 알고리즘 분석 그렇다면 언제 ArrayList와 LinkedList 중 어떤 것을 사용하는 것이 더 좋은 선택일까? 어떤 프로그램에 어떤 클래스를 사용하는 것이 더 좋을 지 결정할 때 두 경우의 효율성을 계산하기 위해서 두 가지 방법을 사용할 수 있다. 1. 프로파일링 (Profiling) 둘 다 시도해보고 각각 얼마나 걸리는 지 확인 단점 ! 둘 다 구현해봐야한다. 결과가 사용하는 컴퓨터의 성능에 의존한다. 결과가 문제 크기나 입력으로 사용하는 데이터에 의존한다. 2. 알고리즘 분석 (Analysis of algoritms) 구현하지 않고 알고리즘을 비교하는 방법 첫번째 가정 - 하드웨어의 세부사항을 다루지 않기 위해 알고리즘을 이루는 기본 연산을 식별하여 알고리즘에 필요한 연산 수를 센다. 두번째 가정 - 입력 데..
자바로 배우는 핵심 자료구조와 알고리즘 : 1장 인터페이스 내가 공부하고 있는 것에 비해 많이 이르지만 이 책을 공부해보려고 한다. http://www.yes24.com/Product/Goods/61198657 자바로 배우는 핵심 자료구조와 알고리즘 자료구조와 알고리즘을 활용하여 간단한 웹 검색 엔진 만들기이 책은 컴퓨터과학을 공부하거나 기술 인터뷰를 준비하는 소프트웨어 개발자를 위한 실용적인 책입니다. 자료구조와 알고리즘을 www.yes24.com 1.1. 리스트가 두 종류인 이유 자바의 List 인터페이스에는 ArrayList와 LinkedList 두 가지 리스트의 구현을 제공했다. 그 이유는 무엇이며, 어떤 때에 어느 것을 선택해야할지에 대한 답을 찾을 것이다. 이를 위해서 이들의 동작 방법과 장단점을 배울 것이다. 1.2. 자바 interface 자바의 ..