sean.jin
Spark Code Blog
sean.jin
전체 방문자
오늘
어제
  • 분류 전체보기
    • 개발공부
      • Kotlin
      • LeetCode
      • Algorithm
      • React
    • 주식차트
    • 책리뷰
    • 유틸리티

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 책
  • 주식투자
  • 책리뷰
  • 주식책리뷰
  • 트리플 위칭데이
  • 경제
  • 네마녀의날
  • 오
  • 주식입문자
  • 변동성
  • 쿼드러플위칭데이
  • 아빠와 딸의 주식투자 레슨
  • 책추천
  • 부의 추월차선
  • 초보
  • 자기개발

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
sean.jin
개발공부/LeetCode

[Kotlin] Array에 반복되는 아이템 삭제하기 - ArrayList distinct - LeetCode: Contains Duplicate - 풀이 과정

[Kotlin] Array에 반복되는 아이템 삭제하기 - ArrayList distinct - LeetCode: Contains Duplicate - 풀이 과정
개발공부/LeetCode

[Kotlin] Array에 반복되는 아이템 삭제하기 - ArrayList distinct - LeetCode: Contains Duplicate - 풀이 과정

2021. 6. 8. 09:34
반응형

 

[Kotlin] Array에 반복되는 아이템 삭제하기 - ArrayList distinct - LeetCode: Contains Duplicate - 풀이 과정

문제

Given an integer array nums, return true if any value appears at least twice in the array, and return false if every element is distinct.

  • Array에서 2번이상 반복되는 value가 있을경우 true를 return하고 반복되는 값이없으면 false를 return 하도록 하는게 이 문제의 목표입니다.
  • Arraylist에 Distinct를 사용해서 반복되는 값을 지우고 기존 Array와 지운값의 Array를 비교하여 boolean을 반환해보겠습니다.

 

 

예시

위의설명과 같이 example1을 보면 1이 겹치기때문에 true를 return하고있습니다.example2는 겹치는 숫자가 없으므로 false를 return합니다. 

풀이과정

  • 문제에서 반환값이 Boolean이므로 true와 false를 리턴하게 해야합니다.
  • 그리고 함수에 parameter로 intArray가 들어가게 됩니다. IntArray는 수정이 불가능하므로 arraylist를 새로 만들어 테스트하려합니다.
//nums = [1,2,3,1]

class Solution {
    fun containsDuplicate(nums: IntArray): Boolean {

		//새로운 비어있는 arrayList를 만들어줍니다.
        var newArrayList = arrayListOf<Int>()

		//intArray의 value들을 newArrayList에 복제해서 넣어줍니다.
        for (i in 0..nums.size-1){ //nums의 사이즈는 4이지만 for loop에서는 0..3포지션을 의미해야하기때문에 -1을 해야합니다.
            newArrayList.add(nums[i])//arraylist에 nums[0]부터 nums[3]까지 넣어줍니다.
        
        }
        // newArrayList는 수정가능하기때문에 distinct를 사용할수있게되었습니다. 
        // 그러므로 새로운 ArrayList를 secondArrayList 인스턴스해주었습니다.
        var secondArrayList = newArrayList.distinct() 
        // distinct는 arraylist에 반복되는 값을 지우고 새로운 arraylist를 반환하는 함수입니다. 
        // 그러므로 newArrayList.distinct를 쓴다고 newArrayList에 distinct가 실행되지않습니다.

		// 반복되는 값을 지운 Arraylist와 기존 Arraylist는 사이즈가 다르게됩니다. 
        //만약 사이즈가 다르면 반복된값이 지워졌다는 이야기이기때문에
        var size1 = nums.size //nums intArray의 사이즈

        var size2 = secondArrayList.size //distinct를 한 새로운 Array에 사이즈
      
      	//사이즈가 다를때 true를 return하고 
        if (size1 != size2) {
            return true
        } else {
        	// 사이즈가 같을때 false를 return합니다.
            return false
        }
    }
}

 

반응형

'개발공부 > LeetCode' 카테고리의 다른 글

[Kotlin] LeetCode: Intersection of Two Arrays IISolution 풀이  (0) 2021.06.11
[Kotlin] Array 에 같은 숫자 찾기, HashMap활용 풀이 - LeetCode: Single Number  (0) 2021.06.10
[Kotlin] LeetCode - Best Time to Buy and Sell Stock IISolution - 풀이과정  (0) 2021.06.05
[Kotlin] String, Int 순서 뒤집기 - LeetCode: Reverse Integer 풀이  (0) 2021.06.05
[Kotlin] LeetCode 1. Two Sum 풀이 - for index, indices 활용  (0) 2021.06.04
  •  
  • 문제
  • 예시
  • 풀이과정
'개발공부/LeetCode' 카테고리의 다른 글
  • [Kotlin] LeetCode: Intersection of Two Arrays IISolution 풀이
  • [Kotlin] Array 에 같은 숫자 찾기, HashMap활용 풀이 - LeetCode: Single Number
  • [Kotlin] LeetCode - Best Time to Buy and Sell Stock IISolution - 풀이과정
  • [Kotlin] String, Int 순서 뒤집기 - LeetCode: Reverse Integer 풀이
sean.jin
sean.jin
앱개발, 알고리즘, JS, Kotlin, 미국 취업준비

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.