https://school.programmers.co.kr/learn/courses/30/lessons/142086
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문자열 s가 주어졌을 때, s의 각 위치마다 자신보다 앞에 나왔으면서, 자신과 가장 가까운 곳에 있는 같은 글자가 어디 있는지 알고 싶습니다.
예를 들어, s="banana"라고 할 때, 각 글자들을 왼쪽부터 오른쪽으로 읽어 나가면서 다음과 같이 진행할 수 있습니다.
따라서 최종 결과물은 [-1, -1, -1, 2, 2, 2]가 됩니다.
문자열 s이 주어질 때, 위와 같이 정의된 연산을 수행하는 함수 solution을 완성해주세요.
func solution(s string) []int {
var result = make([]int, len([]rune(s)))
var position = map[rune]int{}
for i, r := range s {
p, ok := position[r]
if !ok {
result[i] = -1
} else {
result[i] = i - p
}
position[r] = i
}
return result
}
[Programmers] Lv.2 큰 수 만들기 (Go) (0) | 2022.12.15 |
---|---|
[Programmers] Lv.2 귤 고르기 (Go) (0) | 2022.12.14 |
[Programmers] Lv.2 점 찍기 (Go) (0) | 2022.12.12 |
[Programmers] Lv.1 문자열 나누기 (Go) (0) | 2022.12.11 |
[Programmers] Lv.1 문자열 내 마음대로 정렬하기 (Go) (0) | 2022.12.10 |
댓글 영역