문제 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. 예를 들면, 13까지는 3개, 58까지는 5개를 지난다. 입력 첫째 줄에 N(1 ≤ N ≤ 1,000,000,000)이 주어진다. 출력 입력으로 주어진 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나는지 출력한다. 풀이 문제를 한 마디로 축약하면 라고 할 수 있다. 해서 규칙을 찾으면 첫 번째 껍질은 1개, 두 번째는 6개, 세 번째는 12개, 그 ..
자바에서 생성자는 클래스의 네 가지 구성요소(필드, 메서드, 생성자, 내부 클래스)중 하나이며 메서드와 비슷한 코드 블럭, 혹은 특별한 메서드이다. 위 문장은 메서드를 어떻게 정의하느냐에 따라 달라지는 미묘한 의미를 가졌지만, 어쨌거나 중요한 것은 생성자 역시 메서드, 혹은 그에 준하는 코드 블럭이라는 것이다. 생성자는 매개변수의 유무에 따라 기본 생성자(Default or no-arg Constructor) - 매개변수가 없는 생성자 매개변수가 있는 생성자(Parameterized Constructor) 로 나뉘며 일반적인 메서드와는 다른 생성자만의 특징은 아래와 같은 것들이 있다. 클래스의 멤버(Member)가 아니므로 상속 및 오버 라이딩의 대상이 되지 않는다. 생성자의 이름은 반드시 클래스의 이름..
문제 n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 n (1 ≤ n ≤ 10,000)이 주어진다. 출력 1부터 n까지 합을 출력한다. 풀이 반복문을 스트림으로 풀이하는 기본 중의 기본 문제이다. 간단하게 풀 수 있다. import java.util.Scanner; import java.util.stream.IntStream; public class Prob8393Stream { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int result = IntStream.rangeClosed(1, n) .sum(); System.out.pri..
Class 클래스는 객체 자체가 아닌 객체를 생성하기 위한 틀이자 설계도이다. 기본적으로 class 키워드를 이용해 아래와 같이 정의하며, public class Car{ int doors = 4; // (1)필드 void stop {...} // (2)메서드 Car {...} // (3)생성자 class Car2 {...} // (4)내부 클래스 } 필드, 메서드, 생성자, 내부 클래스의 구성요소 중 생성자를 제외한 세 가지를 클래스(혹은 생성된 객체)의 멤버라 부른다. 각 구성요소의 특징은 아래와 같다. 필드 - 클래스(객체)의 속성을 나타내는 변수. 차의 모델명, 색깔, 문의 개수 등이 있다. 메서드 - 클래스(객체)의 기능을 나타내는 함수. 가속하기, 멈추기 등이 있다. 생성자 - 클래스의 객체를..
문제 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼프가 1850년에 증명했다. 예를 들어, 10보다 크고, 20보다 작거나 같은 소수는 4개가 있다. (11, 13, 17, 19) 또, 14보다 크고, 28보다 작거나 같은 소수는 3개가 있다. (17,19, 23) 자연수 n이 주어졌을 때, n보다 크고, 2n보다 작거나 같은 소수의 개수를 구하는 프로그램을 작성하시오. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 케이스는 n을 포함하는 한 줄로 이루어져 있다. 입력의 마지막에는 0이 주어진다. 출력 각 테스트 케이스에 대해서, n보다 크고..
문제 M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 M과 N이 빈칸을 사이에 두고 주어진다(1 ≤ M ≤ N ≤ 1,000,000). M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. 출력 한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다. 풀이 이중으로 스트림을 이용해서 간단하게 풀었다. 반복해서 사용하다 보니 스트림에 조금은 익숙해지는 기분이 든다. import java.util.Scanner; import java.util.stream.IntStream; public class Prob1929Stream { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int ..
문제 자연수 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을 출력한다. 풀이 IntStream을 두 번 사용해서 ..
어제 수업을 듣다가 동시성과 병렬성에 대해 배웠다. 말로만 들으니 헷갈려서 시간이 난 김에 정리. 선 요약 병렬성은 동시성을 구현하는 방법 중 하나. 동시성은 동시처럼 보이지만 수도(Pseudo) 동시성. 병렬성이 진짜 동시성. Concurrency vs. Parallelism 동시성(Concurrency) 병렬성(Parallelism) 여러 작업이 동시에 실행되고 있는 것처럼 처리되는 것 여러 작업이 실제로 동시에 실행되는 것 싱글(멀티) 코어 환경에서 논리적 멀티 스레드 생성 및 오버래핑 멀티 코어 환경에서 물리적 멀티 스레드 생성 및 실행 2개 이상의 논리 스레드 필요 2개 이상의 코어, 2개 이상의 물리 스레드 필요 빠른 시간에 하나씩 많은 것을 번갈아가며 처리(멀티 태스킹) 한번에 많은 것을 처..
문제 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. 입력 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. 출력 주어진 수들 중 소수의 개수를 출력한다. 풀이 입력 값으로 리스트를 생성한 다음 스트림을 이중으로 사용해서 소수를 판별했다. 소수 판별법에 따라 연산 속도를 위해 1부터 √a 까지만 순회하도록 했다. import java.util.ArrayList; import java.util.List; import java.util.Scanner; import java.util.stream.IntStream; public class Prob1978Stream { public static void m..
summarizingInt()는 Collectors와 함께 사용 돼 정수형 스트림에서 제목의 계산을 한번에 해주는 연산자이다. 물론 그중 원하는 요소를 뽑아오는 것도 얼마든지 가능한 아주 기특한 아이이다. 코드를 보자. import java.util.IntSummaryStatistics; import java.util.List; import java.util.stream.Collectors; public class SummarizingExample { public static void main(String[] args) { List list = List.of(2, 3, 5, 7, 11, 13, 17, 19); IntSummaryStatistics statistics = list.stream() .coll..
- Total
- Today
- Yesterday
- 중남미
- 스프링
- 동적계획법
- 면접 준비
- 칼이사
- 지지
- java
- 스트림
- spring
- RX100M5
- Backjoon
- 여행
- 파이썬
- 유럽여행
- 남미
- BOJ
- 백준
- Python
- 알고리즘
- 리스트
- 세계일주
- 맛집
- a6000
- 자바
- 야경
- 유럽
- Algorithm
- 세모
- 세계여행
- 기술면접
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |