728x90
반응형

자바 134

[자료구조] 다항식

다항식 - ax^e 형식의 항들의 합으로 구성된 식 a : 계수 (coefficient) x : 변수(variable) e : 지수(exponent) - 지수에 따라 내림차순으로 항을 나열 - 다항식의 차수 : 가장 큰 지수 - 다항식 항의 최대 개수 = (차수 + 1) 개 다항식의 표현 - 각 항의 지수와 계수의 쌍에 대한 선형 리스트 ex) A(x) = 4x^3 + 3x^2 + 2 ☞ p1 = ((3, 4), (2, 3), (0, 2)) - 1차원 배열 이용 ex) P(x) = 4x^3 + 3x^2 + 2 차수(인덱스) x^3 x^2 x 0 계수(값) 4 3 0 2 - 2차원 배열 이용 ex) P(x) = 4x^1000 + 3x^2 + 2 차수 계수 1000 4 2 3 0 2 단순 연결 리스트를 이용..

자료구조 2022.01.01

[JAVA / 자바] 백준 10845번 - 큐 (실버 4)

문제 정수를 저장하는 큐를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 여섯 가지이다. push X: 정수 X를 큐에 넣는 연산이다. pop: 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 큐에 들어있는 정수의 개수를 출력한다. empty: 큐가 비어있으면 1, 아니면 0을 출력한다. front: 큐의 가장 앞에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. back: 큐의 가장 뒤에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. 입력 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 ..

[JAVA / 자바] 백준 1103번 - 피보나치 함수

문제 다음 소스는 N번째 피보나치 수를 구하는 C++ 함수이다. int fibonacci(int n) { if (n == 0) { printf("0"); return 0; } else if (n == 1) { printf("1"); return 1; } else { return fibonacci(n‐1) + fibonacci(n‐2); } } fibonacci(3)을 호출하면 다음과 같은 일이 일어난다. fibonacci(3)은 fibonacci(2)와 fibonacci(1) (첫 번째 호출)을 호출한다. fibonacci(2)는 fibonacci(1) (두 번째 호출)과 fibonacci(0)을 호출한다. 두 번째 호출한 fibonacci(1)은 1을 출력하고 1을 리턴한다. fibonacci(0)은 ..

[JAVA / 자바] 백준 2292번 - 벌집

문제 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. 예를 들면, 13까지는 3개, 58까지는 5개를 지난다. 입력 첫째 줄에 N(1 ≤ N ≤ 1,000,000,000)이 주어진다. 출력 입력으로 주어진 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나는지 출력한다. 문제 접근 방법 문제의 패턴을 찾는 게 중요하다. 1번 방부터 시작해서 n번방까지 가는 최소 거리를 구하는 것으로 1번 방으로부터 몇 겹..

[JAVA / 자바] 백준 1929번 - 소수 구하기

문제 M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 M과 N이 빈칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. 출력 한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다. 문제 접근 방법 이번 문제는 n까지의 소수를 찾아 배열에 저장해 두고 m부터 n사이의 소수를 한 줄에 하나씩 오름차순으로 출력하면 되는 문제이다. 소수를 구할 때는 에라토스테네스의 체를 사용하면 편하게 소수를 구할 수 있다. 이번 문제의 유의할 점은 출력량이 많다는 것이다. JAVA에서는 출력을 흔히 대표적으로 많이 쓰이는 System.out.println함수를 사용하여 할 수도 있지만, BufferedWriter함수에..

[JAVA / 자바] 백준 2581번 - 소수

문제 자연수 M과 N이 주어질 때 M이상 N이하의 자연수 중 소수인 것을 모두 골라 이들 소수의 합과 최솟값을 찾는 프로그램을 작성하시오. 예를 들어 M=60, N=100인 경우 60 이상 100 이하의 자연수 중 소수는 61, 67, 71, 73, 79, 83, 89, 97 총 8개가 있으므로, 이들 소수의 합은 620이고, 최솟값은 61이 된다. 입력 입력의 첫째 줄에 M이, 둘째 줄에 N이 주어진다. M과 N은 10,000 이하의 자연수이며, M은 N보다 작거나 같다. 출력 M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다. 문제 접근 방법 이번 문제는 m과 n를 ..

[JAVA / 자바] 객체지향 프로그래밍

코드의 재사용 - 개발비용을 줄이고 신뢰성과 생산성을 높임 - 객체 재사용 : 기존 객체의 인터페이스를 맞추어 새로운 프로그램에서 재사용 - 상속(inheritance) : 새로 필요한 객체*가 기존 객체**와 유사한 경우, 기존 객체의 코드를 상속받고 추가되는 부분만 작성하여 객체를 생성하는 방법 *새로 필요한 객체 : 자식 객체(child object), 하위 객체(sub object) **기존 객체 : 부모 객체(parent object), 상위 객체(super object) 자바의 캡슐화 - 캡슐화된 클래스를 조합하여 프로그램 구성 (class 키워드) - 클래스 내부의 멤버들을 캡슐화하기 위해 접근 제어자 사용 > public - 모든 클래스에서 접근 가능 > protected - 같은 패키지의..

자료구조 2021.12.26

[JAVA / 자바] 자바 제어문

조건문 - if 명령문 : 조건식을 검사하여 그 결괏값이 참(true)이면 명령문 수행, 거짓(false)이면 명령문을 수행하지 않고 건너뜀 if(조건식){ 명령문; ... } else if(조건식){ 명령문; ... } else{ 명령문; ... } - switch 명령문 : if-else 구조를 여러 번 반복하는 다중 조건문, 식을 계산하여 구한 값과 일치하는 case문을 찾아서 해당 명령문을 수행하고, break 명령을 만나면 switch 명령문을 빠져나감(break 명령을 만날 때까지 하위 케이스 명령문도 수행함) switch(식) { case 값: 명령문; break; case 값: 명령문; case 값: 명령문; break; default: 명령문; } 반복문 : 같은 명령문을 여러 번 반복 ..

[JAVA / 자바] 백준 1978번 - 소수 찾기

문제 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. 입력 첫 줄에 수의 개수 N이 주어진다. N은 100 이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. 출력 주어진 수들 중 소수의 개수를 출력한다. 문제 접근 방법 수를 입력받아 그 수가 소수인지 판단만 해주면 되는 간단한 문제이다. 방법은 총 2가지인데 1. 수를 입력받을 때마다 그 수만 소수인지 판단한다. 2. 미리 나올 수 있는 수의 범위의 소수를 모두 구해두고 수를 입력받으면 그 수가 소수인지 아닌지 판단한다. 이때, 입력의 수에 따라 입력이 적을수록, 입력되는 수가 적을수록 1번 방법이 효율적이고 입력이 많을수록, 입력되는 수가 높을수록 2번 방법이 효율적이다. 입력의 수에 따라 ..

[JAVA / 자바] 백준 1011번 - Fly me to the Alpha Centauri

문제 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행사가 되어 새로운 세계에 발을 내려놓는 영광의 순간을 기다리고 있다. 그가 탑승하게 될 우주선은 Alpha Centauri라는 새로운 인류의 보금자리를 개척하기 위한 대규모 생활 유지 시스템을 탑재하고 있기 때문에, 그 크기와 질량이 엄청난 이유로 최신 기술력을 총동원하여 개발한 공간이동 장치를 탑재하였다. 하지만 이 공간이동 장치는 이동 거리를 급격하게 늘릴 경우 기계에 심각한 결함이 발생하는 단점이 있어서, 이전 작동 시기에 k광년을 이동하였을 때는 k-1 , k 혹은 k+1 광년만을 다시 이동할 수 있..

728x90
반응형