int 배열의 복사 _ 프로그래머스 lv0 배열자르기, 외계행성의 나이

konut ko·2023년 4월 29일
1

자바코테 Lv0~1

목록 보기
11/12
post-thumbnail

배열자르기

문제

내 풀이

다른사람 풀이 공부

Arrays.copyOfRange(원본배열, 시작 인덱스, 직전 인덱스)

String은 split

자꾸 헷갈리는 자바스크립트 매서드
slice : 배열 부분 복사
splice : 배열 부분 삭제

split 자바 & 자바스크립트
문자열 구분자로 잘라 배열에 담음
두번째 파람에 0이아닌 자연수를 넣으면 해당 인덱스까지 배열의 크기를 맞추어 반환

Intstream.rance: rangeClosed + map, toArray

IntStream 은 기본(primitive) 정수 요소의 열을 만들거나 병렬 집계 처리를 지원한다.

IntStream.rangeClosed(num1, num2)를 이용해서
인덱스를 열에 담음

그리고

.map(i -> numbers[i])를 이용해서
열의 원소를 순회하며 'number의 인덱스'에서 '그 인덱스가 가르키는 원소'로 치환함

그다음

.toArray()로 열(Intstream)을 배열로 바꿈

참고 range와 rangeClosed 차이
IntStream.range(num1, num2) : num2전 인덱스까지
IntStream.rangeClosed(num1, num2) : num2 인덱스 포함 까지.

Arrays.stream이 있음

문자열에 대한 stream 인듯

심화내용
https://futurecreator.github.io/2018/08/26/java-8-streams/

외계행성의 나이

문제

나의 풀이

다른사람의 풀이 공부

stream 장인

import java.util.stream.Collectors;

class Solution {
    public String solution(int age) {
        return String.valueOf(age).chars().mapToObj(operand -> String.valueOf((char) (49 + operand))).collect(Collectors.joining());
    }
}

String.chars()

i는 인덱스라서 기본으로 int타입인듯하다

(char)로 다운캐스팅 하니 문자로 출력받을 수 있었다.

추천 사이트

https://www.devkuma.com/docs/java/stream-api/int-stream/

profile
보초딩코라 틀린 내용 있을 수도 있습니다. 댓글 지적 환영

0개의 댓글