2022년 05월 08일 일요일 - 여행때문에 오랜만에 글을 씀미당


오늘 올려볼 문제는 341번 Flatten Nested List Iterator 이라는 문제이다.


사진을 클릭하면 해당 문제로 이동합니다.

leetcode 문제 사진

오늘도 LeetCode 사이트 오늘의 문제를 가지고 왔다.

생각보다는 쉽네?


입력


입력을 설명하기 애매한 문제다. 문제를 참고해주기 바란다.



풀이 및 코드


주어진 리스트를 펼쳐주는 iterator를 구현하는 문제다.


오늘은 처음부터 정답을 생각해냈다.

재귀를 사용해서 리스트를 펼치는 방식으로 구현했다.


이제 코드를 봐보자!


풀이코드

public class NestedIterator implements Iterator<Integer> {
    ArrayList<Integer> arr = new ArrayList<>();
    List<NestedInteger> nestedList;

    int index = 0;

    public NestedIterator(List<NestedInteger> nestedList) {
        this.nestedList = nestedList;
        AddAll();
    }

    @Override
    public Integer next() {
        return arr.get(index++);
    }

    @Override
    public boolean hasNext() {
        return index < arr.size();
    }

    public void AddAll()
    {
        for(int i = 0; i < nestedList.size(); i++)
        {
            Add(nestedList.get(i));
        }
    }

    public void Add(NestedInteger ni)
    {
        if(ni.isInteger())
        {
            arr.add(ni.getInteger());
        }
        else
        {
            for(int i = 0; i < ni.getList().size(); i++)
            {
                Add(ni.getList().get(i));
            }
        }
    }
}




제출 화면

leetcode 문제 맞았습니다


오랜만에 글을 쓰니 느낌이 좀 새로운 것 같다.

내일은 구현 문제말고 푸는 맛이 있는 문제가 나왔으면 좋겠다.


내일도 문제를 풀어서 블로그에 글을 쓸 수 있으면 좋겠다.

+ Recent posts