[golang] LeetCode #1313. Decompress Run-Length Encoded List

kameals·2020년 1월 12일
1

leetcode

목록 보기
7/14
post-thumbnail

1.문제

We are given a list nums of integers representing a list compressed with run-length encoding.

Consider each adjacent pair of elements [a, b] = [nums[2i], nums[2i+1]] (with i >= 0). For each such pair, there are a elements with value b in the decompressed list.

Return the decompressed list.

Example 1:

Input: nums = [1,2,3,4]
Output: [2,4,4,4]

Constraints:

2 <= nums.length <= 100
nums.length % 2 == 0
1 <= nums[i] <= 100

해설

런 렝스 부호화로 압축된 리스트로 표현되는 인티저 숫자 리스트가 주어진다.
서로 이웃한 각 요소는 [a, b] = [nums[2i], nums[2i+1]] (with i >= 0) 이다.
각 쌍에 대해, 압축이 풀린 리스트에는 값 b를 가진 각 요소들이 있다.

2.접근

// 배열의 길이는 짝수이고, 2개가 한 쌍이 되므로, 반복은 배열 길이의 2분의 1 실행한다.
// 한 쌍의 값을 각각 2i와 2i+1을 키로 하는 값을 대입한다.
// 새로운 배열에 append한다.

3. 내가 작성한 답

func decompressRLElist(nums []int) []int {
    var s []int
	l := len(nums) / 2
	
	for i := 0; i < l; i++ {
		a := nums[2 * i]
		b := nums[2 * i + 1]
		for j := 0; j < a; j++ {
			s = append(s, b)
		}
	}
	return s
}

4. 다른 유저의 답안

Go언어의 다른 답변은 없었기에, 작성해놓았다.

5. 추가로 공부한 내용

  1. WIKI - 런 렝스 부호화

6. 활용사이트

profile
팀의 윤활유 역할이 되고 싶은 소박한 개발자입니다. 좌우명은 '밝고 바르고 튼튼하자'

0개의 댓글