문제 정수 n개가 주어졌을 때, n개의 합을 구하는 함수를 작성하시오. 작성해야 하는 함수는 다음과 같다. Java: long sum(int[] a); (클래스 이름: Test) 풀이 스트림을 이용해 굉장히 간단하게 구현할 수 있다. import java.util.Arrays; public class Prob15596Stream { long sum(int[] a) { long ans = Arrays.stream(a) .mapToLong(b -> b) .sum(); return ans; } }
문제 아홉 개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다. 입력 첫째 줄부터 아홉 번째 줄까지 한 줄에 하나의 자연수가 주어진다. 주어지는 자연수는 100 보다 작다. 출력 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 몇 번째 수인지를 출력한다. 풀이 스트림을 이용해 간단하게 풀어보았다. import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Prob2562St..
문제 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. 입력 첫째 줄에는 테스트 케이스의 개수 C가 주어진다. 둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다. 출력 각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다. 풀이 for문과 스트림을 이용해 풀어보았다. import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Prob4344Stream { ..
map() map()은 스트림에 접근해서 사용자가 원하는 매핑을 실행해주는 메서드이다. import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class Example { public static void main(String[] args) { List list = Arrays.asList(2, 3, 5, 7); List result = list.stream() .map(a -> a * 2) // 모든 요소에 곱하기 2 .collect(Collectors.toList()); System.out.println(result); } } [4, 6, 10, 14] 지정된 리스트의 각 요소에 곱하기 2를 하..
스트림을 사용하다 보면 분명히 Intstream을 사용중인데 max(), min(), average()등에서 에러가 나곤 한다. 이때 최종연산에 int 변환을 붙이거나 반환 타입을 OptionalInteger로 변환하면 해결된다. 반환타입을 double로 받고 싶을 때도 마찬가지 에러가 나는데, 이는 max(), min(), average()의 반환타입이 기본적으로 OptionalInt, OptionalDouble이기 때문이다. 설명을 읽어보면 스트림이 비어있는 경우에 비어있는 optional을 반환한다고 쓰여있다. NullPointerException을 피하기위한 장치로 보이는데, 결과부터 말하면 Optional = OptionalInt Optional = OptionalDouble 이다. 귀찮아도 원..
문제 세준이는 기말고사를 망쳤다. 세준이는 점수를 조작해서 집에 가져가기로 했다. 일단 세준이는 자기 점수 중에 최댓값을 골랐다. 이 값을 M이라고 한다. 그리고 나서 모든 점수를 점수/M*100으로 고쳤다. 예를 들어, 세준이의 최고점이 70이고, 수학점수가 50이었으면 수학점수는 50/70*100이 되어 71.43점이 된다. 세준이의 성적을 위의 방법대로 새로 계산했을 때, 새로운 평균을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보다 크다. 출력 첫째 줄에 새로운 평균을 출력한다. 실제 정답과 출력값의 절대..
문제 두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다. 수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오. 입력 첫째 줄부터 열 번째 줄 까지 숫자가 한 줄에 하나씩 주어진다. 이 숫자는 1,000보다 작거나 같고, 음이 아닌 정수이다. 출력 첫째 줄에, 42로 나누었을 때, 서로 다른 나머지가 몇 개 있는지 출력한다. 풀이 import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Prob3052Stream { pub..
뭔가 검색하다 이런 것들을 봐 버렸다. 굉장해..... https://knowyourmeme.com/photos/1173139 Programming languages Gijinka | Gijinka / Moe Anthropomorphism See more 'Gijinka / Moe Anthropomorphism' images on Know Your Meme! knowyourmeme.com https://sentencedtoship.tumblr.com/post/147401402096 sentencedtoship PROGRAMMING LANGUAGES GIJINKAS PART 2: Objective-C: Smol pure innocence, owns more than 10 Apple products, bul..
스트림의 중간 연산 중 하나인 concat()은 Concatenate(잇다, 연쇄시키다)에서 왔다. 단어 그대로 특정 스트림을 다른 스트림 뒤에 붙이는 연산을 하는데, 사용 방법도 굉장히 간단하다. 먼저 두 개의 스트림을 이어 붙이는 경우 아래와 같이 구현하면 된다. public class PracticeConcat { public static void main(String[] args) { List list1 = Arrays.asList(2, 3, 5, 7, 11); List list2 = Arrays.asList(13, 17, 19, 23, 29); Stream.concat(list1.stream(), list2.stream()) .forEach(System.out::println); } } 두 개의..
빌더 패턴(Builder Pattern)은 다양한 조건의 객체를 손쉽게 만들어내기 위한 디자인 패턴, 그중에서도 생성 패턴이다. 디자인 패턴이라 함은 쉽게 말해 재사용 가능한 일종의 솔루션이라는 뜻이며, 생성 패턴은 객체 생성 절차를 추상화하는 패턴이라는 뜻이다. 구체적으로 빌더 패턴은 생성자를 거치지 않고 빌더라는 내부 클래스를 통해 간접적으로 인스턴스를 생성하는 방식이다. 위키백과에는 이를 생성 과정과 표현 방법을 분리하는 패턴이라고 표현하고 있기도 하다. 이는 특히 대상 클래스가 복잡해지고 요구사항이 늘어날수록 빛을 발하게 되는데, 그 이유는 아래와 같다. 대상 클래스의 생성자를 private으로 묶고 간접적으로 인스턴스를 생성 → 결합도를 낮춰 수정 및 유지보수가 편해짐 뛰어나고 직관적인 가독성으..
- Total
- Today
- Yesterday
- 리스트
- java
- Algorithm
- 파이썬
- spring
- 중남미
- 백준
- 알고리즘
- 여행
- 유럽여행
- Backjoon
- 지지
- 유럽
- 남미
- 기술면접
- 야경
- 세모
- 세계일주
- 스트림
- BOJ
- 동적계획법
- 스프링
- RX100M5
- 맛집
- 면접 준비
- 자바
- Python
- 칼이사
- 세계여행
- a6000
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |