티스토리 뷰

1. 문제

https://school.programmers.co.kr/learn/courses/30/lessons/120888

2. 풀이

코테에서 중복을 한번에 처리하는 Set은 흔하게 사용되는데, 이번 문제는 선입선출이 필요했다.

 

즉, 순서가 있다는 말인데 Set은 순서를 보장하지 않는다. 다행히 자바에서는 LinkdedHashSet이라는 순서를 보장해주는 Set 자료구조가 있어 이를 활용해 풀었다.

 

다른사람 코드를 둘러보던 중 chars가 stream처럼 동작한다는 걸 알게되었다. 그리고 확실히 stream게열이 자바에서는 직관적이고 좋은 개발방법인것 같다.

 

String의 세부사항을 처리하는데 활용해봐야겠다. 

 

너무 오랜만의 코테라 레벨 0부터 감을 잡아가고 있는데, 생각보다 공부가 많이 된다.

3. 코드

내 답안

import java.util.LinkedHashSet;
class Solution {
    public String solution(String my_string) {
        LinkedHashSet<String> set = new LinkedHashSet<>();
        String[] arr = my_string.split("");
        for(String s : arr) {
            set.add(s);
        }

        return String.join("", set);
    }
}

인상깊었던 답안(pursue503)

import java.util.stream.Collectors;

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

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
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
글 보관함