목차 Summary 기본형과 참조형 데이터 타입의 차이에 대해서만 선 요약하고 들어간다. 요약 이후의 글은 둘의 차이 뿐 아니라 각각의 특성에 대해서도 조금 더 다루고 있다. Primitive Variables Reference Variables 개수 8 무제한(기본형을 제외한 전부) 크기 1, 2, 4, 8byte(타입마다 다름) 4, 8byte(JVM에 따라 다름) 저장 데이터 데이터 값 데이터의 주소값 데이터 저장 위치 Call Stack Heap 산술연산 가능 불가능 null 값 불가능 가능 비교 연산자 == equals() Primitive Variables 자바는 아래의 8가지 기본형 타입을 제공한다. 타입 할당되는 메모리 크기 기본값 표현 범위 논리형 boolean 1 byte false t..
문제 베르트랑 공준은 임의의 자연수 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을 두 번 사용해서 ..
섹션 4가 끝났다. 이상하리만치 빨리 끝나버린 섹션 4 기간 동안 머리와 수염이 자랐고 손 끝이 여러 번 베였고 카누 라이트 로스팅을 알게 되었으며 지식은 좀처럼 늘지 않았다. 요약 어제 동기 중 한 분 덕분에 알게 된 경과 날짜 총 119일의 요약은 아래와 같다. 다행스럽게도 공부하다가 지치는 밤이면 위와 같은 짤을 만들며 보내서인지 그리 외롭진 않았던 것 같다. 하지만 해결되지 않는 에러로 가득 찬 인텔리제이 화면이나 풀지 못해 쌓여버린 데일리 코딩이나 가끔은 아이패드로 열리지 않는 유어 클래스 컨텐츠와 다가올 프로젝트 팀원들에 대한 미안함이 겹치는 날이면 나도 모르게 하차 생각을 하기도 했다. 가끔 반 정도는 세상에 대한 반항심으로 가득해 응~ 하차하면 그만이야~ 를 되뇌며 새벽까지 맥북을 잡고 씨..
어제 수업을 듣다가 동시성과 병렬성에 대해 배웠다. 말로만 들으니 헷갈려서 시간이 난 김에 정리. 선 요약 병렬성은 동시성을 구현하는 방법 중 하나. 동시성은 동시처럼 보이지만 수도(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..
지난 글에서 리액티브 프로그래밍과 리액티브 스트림즈, 그 구현체인 프로젝트 리액터에 대해 알아보았다. 2022.10.12 - [Development/Spring] - [Spring]리액티브 프로그래밍(Reactive Programming) 2022.10.12 - [Development/Spring] - [Spring]리액티브 스트림즈(Reactive Streams) [Spring]리액티브 스트림즈(Reactive Streams) 지난 글에서 리액티브 시스템이란 쉽게 말해 반응 속도가 빠른 프로그램을 설계하는 원칙이며 리액티브 프로그래밍은 그 원칙을 구현하는 논 블로킹, 비동기 방식의 선언형 개발 패러다임이라 gnidinger.tistory.com 짧게 요약하면 아래와 같은 내용이다. 리액티브 프로그래밍 ..
문제 무한히 큰 배열에 다음과 같이 분수들이 적혀있다. 1/1 1/2 1/3 1/4 1/5 … 2/1 2/2 2/3 2/4 … … 3/1 3/2 3/3 … … … 4/1 4/2 … … … … 5/1 … … … … … … … … … … … 이와 같이 나열된 분수들을 1/1 → 1/2 → 2/1 → 3/1 → 2/2 → … 와 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자. X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. 출력 첫째 줄에 분수를 출력한다. 풀이 수열을 조금 더 늘어놓고 규칙 및 풀이 방법을 찾아보자. $$\frac{1}{1}, \frac{1}{2}, \frac{2}{1},..
- Total
- Today
- Yesterday
- 세모
- 지지
- 야경
- Backjoon
- 세계일주
- 세계여행
- 알고리즘
- BOJ
- 자바
- 면접 준비
- 칼이사
- Algorithm
- 스프링
- 동적계획법
- a6000
- 리스트
- 기술면접
- java
- 파이썬
- RX100M5
- Python
- 스트림
- 맛집
- 유럽여행
- 중남미
- 유럽
- 남미
- 여행
- 백준
- spring
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |