[프로그래머스] 가장 가까운 같은 글자 (Kotlin)

2023. 4. 10. 21:39· Coding Test
반응형

문제 링크

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

푸는데 시간이 많이 걸렸다.. Out of Index 에러로 인해..

 

 

처음 나온 Char에 대해서는 무조건 -1을 반영하고,

이후 중복으로 나온 Char에 대해서는 중복으로 나온 인덱스에서 그전에 나온 같은 Char에 대한 인덱스 값을 차감해 주면 된다.

 

withIndex()가 존재한다는 것을 제대로 인지 못하고 있었다.

fun mostNearWord(s: String): IntArray {

//    val answer = IntArray(s.length)
//
//    for (i in s.indices) {
//        if (i != 0) {
//            val idx: Int = s.substring(0, i)
//                .lastIndexOf(s.charAt(i))
//            if (idx != -1) {
//                answer[i] = i - idx
//            } else {
//                answer[i] = idx
//            }
//        } else {
//            answer[i] = -1
//        }
//    }

//    return answer

//    val res = mutableListOf<Int>()
//    repeat(s.length) {
//        res.add(0)
//    }
//    //맨 처음 글자는 무조건 최초 글자이므로 -1
//    res[0] = -1
//    for (i in 1..s.length) {
//        //인덱스를 순회하며 i-1을 기준으로 값이 중복되는지 여부를 확인
//        val tmp = s.lastIndexOf(s.substring(i, i + 1), i - 1)
//        if (tmp != -1) {
//            //기존 위치의 인덱에서 존재하는 중복 인덱스 위치를 차감
//            res[i] = i - tmp
//        } else {
//            res[i] = tmp
//        }
//    }
//    return res.toIntArray()

    val charMap = mutableMapOf<Char, Int>()

    return s.withIndex().map { (i, char) ->
        val check = charMap[char]
        charMap[char] = i
        if (check == null) -1 else i - check
    }.toIntArray()
}

 

반응형
저작자표시 (새창열림)
'Coding Test' 카테고리의 다른 글
  • [프로그래머스] 직사각형 넓이 구하기 (Kotlin)
  • [프로그래머스] 이진수 더하기 (Kotlin)
  • [프로그래머스] 문자열 내 마음대로 정렬하기 (Kotlin)
  • [프로그래머스] K번째수 (Kotlin)
SeungYong.Lee
SeungYong.Lee
반응형
SeungYong.Lee
Win-Dev
SeungYong.Lee
전체
오늘
어제
  • All (228) N
    • Development (128) N
      • Android (124) N
      • iOS (0)
      • Flutter (4)
      • Backend (0)
    • Algorithm (5)
    • Knowledge (5) N
      • IT (2)
      • Science (0)
      • ETC & Tip (3) N
    • Today I Learn (28)
    • Coding Test (62)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 안녕하세요. 반갑습니다 :)

인기 글

태그

  • 코틀린
  • compose
  • 코딩테스트
  • Animation
  • 비동기처리
  • Retrofit
  • Widget
  • Collection
  • exception
  • Flutter
  • dfs
  • coroutine
  • Imageview
  • Android
  • 프로그래머스
  • hilt
  • Java
  • glance
  • HTTP
  • Kotlin

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
SeungYong.Lee
[프로그래머스] 가장 가까운 같은 글자 (Kotlin)
상단으로

티스토리툴바

개인정보

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

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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