자바 88

Stream API이란.

목차 #1 스트림 API(stream API) 자바에서는 파일이나 콘솔의 입출력을 직접 다루지 않고, 스트림이라는 흐름을 통해 다룬다고 입출력에 대해 공부할 때 배웠었다. 그러나 Java SE 8부터 추가된 스트림 API는 이전에 배웠던 스트림과 전혀 다른 개념이라고 한다 많은 양의 데이터를 저장하기 위해 컬렉션을 사용한다고 한다. 이러하게 저장된 데이터에 접근하려면 반복문이나 반복자(iterator)를 사용하여 매번 새로운 코드를 작성해야 했었다. 이러한 코드들의 단점은 코드의 재사용이 불가능하고 가독성이 떨어지는 문제점이 있었다. 실제로 코드를 작성하면서 여러번의 for문 작성이 주를 이루긴 했었다. 이러한 문제를 해결하기 위해 나온 것이 스트림 API라고 한다. class FirstJava { pu..

[프로그래머스, LV.0] 배열 만들기 2

목차 #1 배열 만들기 2 문제 설명 :정수 l과 r이 주어졌을 때, l 이상 r이하의 정수 중에서 숫자 "0"과 "5"로만 이루어진 모든 정수를 오름차순으로 저장한 배열을 return 하는 solution 함수를 완성해 주세요. 만약 그러한 정수가 없다면, -1이 담긴 배열을 return 합니다. 제한 사항 :1

[프로그래머스, LV.0] 주사위 게임 3

목차 #1 주사위 게임 3 문제 설명 1부터 6까지 숫자가 적힌 주사위가 네 개 있습니다. 네 주사위를 굴렸을 때 나온 숫자에 따라 다음과 같은 점수를 얻습니다. 네 주사위에서 나온 숫자가 모두 p로 같다면 1111 × p점을 얻습니다. 세 주사위에서 나온 숫자가 p로 같고 나머지 다른 주사위에서 나온 숫자가 q(p ≠ q)라면 (10 × p + q)2 점을 얻습니다. 주사위가 두 개씩 같은 값이 나오고, 나온 숫자를 각각 p, q(p ≠ q)라고 한다면 (p + q) × |p - q|점을 얻습니다. 어느 두 주사위에서 나온 숫자가 p로 같고 나머지 두 주사위에서 나온 숫자가 각각 p와 다른 q, r(q ≠ r)이라면 q × r점을 얻습니다. 네 주사위에 적힌 숫자가 모두 다르다면 나온 숫자 중 가장 작..

[프로그래머스, LV.0] 조건 문자열

목차 #1 조건 문자열 문제 설명 제한 사항 1 m ? 0 : 1; } } } ------------------------------------------ 테스트 1 〉통과 (0.02ms, 79.7MB) 테스트 2 〉통과 (0.02ms, 73.3MB) 테스트 3 〉 통과 (0.02ms, 78.3MB) 테스트 4 〉 통과 (0.03ms, 74MB) 테스트 5 〉 통과 (0.04ms, 74MB) 테스트 6 〉 통과 (0.02ms, 75MB) 테스트 7 〉 통과 (0.03ms, 67MB) 테스트 8 〉통과 (0.03ms, 72MB) 테스트 9 〉통과 (0.02ms, 73.9MB) 테스트 10 〉통과 (0.02ms, 72.5MB) 테스트 11 〉통과 (0.02ms, 72.8MB) 테스트 12 〉통과 (0.03m..

[프로그래머스. LV.0] 배열 조각하기

목차 #1 배열 조각하기 문제 설명 제한사항 입출력 예 #2 코드 및 알고리즘 import java.util.*; class Solution { public int[] solution(int[] arr, int[] query) { for(int i = 0; i < query.length; i++) if(i % 2 == 0) arr = Arrays.copyOfRange(arr, 0, query[i] + 1); else arr = Arrays.copyOfRange(arr, query[i], arr.length); return arr; } } 풀이: query를 순회하면서라고 하였으니 for문을 이용해 query의 길이만큼 반복 for문에서 i가 짝수일 때는 arr에서 query[i]번(i가 2라면 query..

[프로그래머스, LV.0] n번째 원소부터

목차 #1 n번째 원소부터. 문제설명 제한사항 입출력 예 #2 코드 및 알고리즘 코드 1 -> 메소드 사용 X class Solution { public int[] solution(int[] num_list, int n) { n -= 1; int len = num_list.length - n; // n번째 원소부터 num_list의 원소의 갯수까지 int[] num_arr = new int[len]; // 저장할 정수 배열 생성. for(int i = n; i < num_list.length; i++) num_arr[i-n] = num_list[i]; return num_arr; } } 풀이: 1. n -= 1; 하는 이유는 배열은 인덱스 0부터 시작하며 문제상에서 주어지는 n은 인덱스 1을 시작을 기준..

[프로그래머스, LV.0] 정수를 나선형으로 배치하기

목차 #1 정수를 나선형으로 배치하기. #2 코드 및 알고리즘 class Solution { public int[][] solution(int n) { int x = 0; // x축 방향 int y = 0; // y축 방향 int temp = 0; // 각 축의 방향 임시 저장 변수 int value = 1; // 1~n 즉, 채워야할 정수 값. int[][] twoArr = new int[n][n]; while(value = n * n) break; } y++; x = temp; for(int down = y; down = n * n) break; } x--; y = temp; for(int left = x; left >= n - 1 - y; left--){ // x 축 감소 for문. twoArr[y..