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

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

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

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
sean.jin

Spark Code Blog

[Kotlin] String에서 반복되지않은 char찾기 - LeetCode: First Unique Character in a String
개발공부/LeetCode

[Kotlin] String에서 반복되지않은 char찾기 - LeetCode: First Unique Character in a String

2021. 6. 20. 13:51
반응형
문제

Given a string s, return the first non-repeating character in it and return its index. If it does not exist, return -1.

반복되는않은 char의 위치를 Int값으로 리턴해야합니다. 만약 반복되는 char들만있다면 -1을 리턴합니다. 반복되는않은 char이 여러개라면 가장 먼저나온 char의 위치를 리턴합니다. 

예시

풀이

이문제에서는 hashmap을 활용하겠습니다. 

 

위와같이 input값인 s의 문자하나하나 for loop로 빈 hashmap에 key value로 들어갑니다. hashmap에 key 값으로 문자들이 들어가고 value로 string에 들어있는 key 값의 문자 갯수가 들어갑니다.

map의 특징으로 value값은 겹칠수있지만 key 값은 하나만 존재할수있습니다. 그러므로 만약 반복되지않은 key값이 나오면 hashmap에 새로 추가가되지만, 반복된 값이라면 value에 1을 더하도록 만들어 주겠습니다. 

 

위와 같이 반복되지않은 키값들은 value가 1로 나타나고 l처럼 두번 반복된key값은 value가 2로 나타나게 됩니다. 

 

class Solution {
    fun firstUniqChar(s: String): Int {
        val count = HashMap<Char, Int>() //비어있는 hashmap을 만들어둡니다.
        val n = s.length //string에 들어있는 문자갯수

        for (i in 0 until n) { //문자갯수 만큼 반복
            val c = s[i]// i 위치에있는 문자
            count[c] = count.getOrDefault(c, 0) + 1 //getOrDefault는 c를 찾고 없으면 0을 리턴하고 있으면 +1을 하게됩니다. 
            Log.d("TAGG","val $c  = ${count[c]}")
        }


        for (i in 0 until n) {
            if (count[s[i]] == 1) return i //key의 value가 1인 값중 가장 앞에있는 값을 찾습니다. 
        }
        return -1 //겹치는 값만있다면 -1을 리턴
    }
}
반응형

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

[Kotlin]String에 특수문자 제거, 띄어쓰기 제거(스페이스 제거), String 거꾸로 뒤집기, 소문자로변환 LeetCode :Valid PalindromeSolution  (0) 2021.06.24
[Kotlin] map, hashmap 같은지 비교하기 LeetCode: Valid Anagram  (0) 2021.06.22
[Kotlin] LeetCode: PlusOne 쉬운 풀이 해설  (0) 2021.06.14
[Kotlin] LeetCode: Intersection of Two Arrays IISolution 풀이  (0) 2021.06.11
[Kotlin] Array 에 같은 숫자 찾기, HashMap활용 풀이 - LeetCode: Single Number  (0) 2021.06.10
    '개발공부/LeetCode' 카테고리의 다른 글
    • [Kotlin]String에 특수문자 제거, 띄어쓰기 제거(스페이스 제거), String 거꾸로 뒤집기, 소문자로변환 LeetCode :Valid PalindromeSolution
    • [Kotlin] map, hashmap 같은지 비교하기 LeetCode: Valid Anagram
    • [Kotlin] LeetCode: PlusOne 쉬운 풀이 해설
    • [Kotlin] LeetCode: Intersection of Two Arrays IISolution 풀이
    sean.jin
    sean.jin
    앱개발, 알고리즘, JS, Kotlin, 미국 취업준비

    티스토리툴바