[Programmers/코딩테스트 입문] 배열 원소의 길이 Java

2022. 12. 17. 17:45IT/Programmers

728x90
반응형

입원 수속 완료하고 병원 침대에서 쓰는 예약글.

수술 전 마지막 공부가 될 것 같다.

무려 7인실이라 시끄럽고 병원 특유의 냄새 때문에 (라는 핑계로) 집중이 잘 되질 않아서 코드가 좀 지저분해진 듯 하다.

 

 

배열 원소의 길이 Java

 

class Solution {
    public int[] solution(String[] strlist) {
        int[] answer = new int[strlist.length];
        for(int i = 0; i < strlist.length; i++) {
            answer[i] = strlist[i].length();
        }
        return answer;
    }
}

 

하고나서 보니 더 좋은 코드가 있었다.

import java.util.Arrays;

class Solution {
    public int[] solution(String[] strList) {
        return Arrays.stream(strList).mapToInt(String::length).toArray();
    }
}

문자열배열 String Array to stream 은 Arrays.stream(strArr)이고

각 원소의 길이 반환은 mapToInt(String::length)로..

배열로 반환은 toArray()

mapToInt를 이용해 한번에 길이 반환이 가능하다는 것을 배웠다.

stream을 더 제대로 이용하려면 map, mapToInt 메소드를 잘 활용할 줄 알아야겠다.

그리고 stream 사용한다고 무조건 import java.util.stream.Stream; 할 게 아니라 배열의 경우 Arrays로 시작, toArray()로 끝낼 때는 import java.util.Arrays;만 쓰면 된다는 것도 기억해둬야지.
#stream(stringArray) #mapToInt #stringlength #toArray

 

 

중복된 문자 제거 (Java)

 

import java.util.stream.Collectors;
import java.util.Arrays;

class Solution {
    public String solution(String my_string) {
        String answer = "";
        answer = Arrays.stream(my_string.split("")).distinct().collect(Collectors.joining());
        return answer;
    }
}

string to stream: Array.sstream(string.split(""))

import java.util.Arrays; 하고, string을 split으로 나눈 다음 Arrays를 이용해 배열화한다. 왜냐하면 망할  stream은 배열만 상대하기 떄문이다. (아닐수도 있지만 내가 이해하기론 그랬다..)

stream to string : stream을 다시 string 변수에 반환하기 위해서는 각 원소로 나눠진 string들을 합쳐줘야한다. 그를 위해 import java.util.stream.Collectors가 필요하다. 

#stringtostream #streamtostring #stream(string) #distinct #Collectors #joining #collect()

 

 

split 사용 안한 코드 있길래 가져와봤다.

import java.util.stream.Collectors;

class Solution {
    public String solution(String my_string) {
        return my_string.chars()
                .mapToObj(Character::toString)
                .distinct()
                .collect(Collectors.joining());
    }
}

 

string을 chars()로 나누고 mapToObj를 통해 Character를 toString 으로 바꾸는 방법이다.

그 외에는 상동.

 

아 두개나 하는 사이에 바늘로 찔리고 검사도 받고 질문도 받아서 피곤하다 이만 쉬어야지.

 

 

22.12.07 서울대병원 입원실에서.

728x90
반응형