연산 2

Stream의 연산

스트림의 연산 스트림은 중간 연산과 최종 연산을 제공한다. 중간연산 연산결과가 Stream 여러 번 적용 가능 최종연산 연산결과가 Stream이 아니다. 단 한번만 적용 가능(Stream요소를 소모함) 중간 연산 스트림 자르기 - skip(), limit() Stream skip(long n) // 앞에서부터 n개 건너뛰기 -> n+1 ~ 끝까지 Stream limit(long maxSize) // maxSize이후는 잘라냄 -> 0 ~ maxSize까지예를 들어 IntStream intStream = IntStream.rangeClosed(1, 10); // 1 2 3 4 5 6 7 8 9 10 intStream.skip(3).limit(5).forEach(System.out::print); // 4 ..

이론 정리/java 2023.01.14

문제 풀이에서 1000000007, 1000000009으로 나누는 이유가 뭐지? (feat.모듈로 연산)

문제 풀이에서 1000000007, 1000000009으로 나누는 이유가 뭐지? (feat.모듈로 연산) 가끔 알고리즘 풀다보면 뭐 숫자를 몇으로 나눈 나머지를 써라~~ 이런 것들이 보인다. 아니 이거 왜씀? 하기도 하고, 결과에 나누라해서 진짜 결과에다가 나누면 제대로 안나온다... 이거 뭘까?? Integer, Long int형식은 32비트로 표현되고 표현할 수 있는 범위는 -2147483648 ~ 2147483647 이다. long형식은 64비트로 표현되고 표현할 수 있는 범위는 -9.22337204e18 ~ 9.22337204e18이다. 이게 가끔 문제에서 계산하다보면 저 이상의 숫자가 나오면 overflow가 나와버리는 것이다. 연산자 분배법칙 모듈러 연산은 주로 암호 알고리즘에서 사용된다. 일..

이론 정리 2023.01.01