반응형
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 디자인 패턴
- 지표
- 신혼 여행
- github
- AWS 비용 절감
- 경로 계획 알고리즘
- 생성 패턴
- 실용주의 프로그래머
- 청첩장 모임
- AWS
- MAPF
- 논문 정리
- Monthly Checklist
- study
- ssh
- terraform
- 오블완
- 도커 주의사항
- docker
- Playwright
- Til
- PostgreSQL
- leetcode
- Go-lang
- 14일 공부
- 구조 패턴
- amazon ecs
- 티스토리챌린지
- Rust
- DevOps
Archives
- Today
- Total
밤 늦게까지 여는 카페
[leetcode] 1652. Defuse the Bomb 본문
반응형
안녕하세요. 오늘은 leetcode의 1652. Defuse the Bomb 문제를 풀어봤습니다.
1. 문제
이 문제에서는 수열 code와 하나의 수 k가 주어지고, k의 값에 따라서 수열을 반환해야 합니다.
- k > 0 일 때, i번째에 code의 i+1, i+2, ..., i+k번째 수들의 합을 가지는 수열을 반환합니다.
- k < 0 일 때, i번째에 code의 i+k, i+k-1, ..., i -1번째 수들의 합을 가지는 수열을 반환합니다.
- k = 0 일 때, 길이가 code와 동일한 0으로 이루어진 수열을 반환합니다.
- i+k가 code의 길이보다 커지면 처음부터 시작합니다.
- i+k가 code의 길이보다 작아지면 맨 뒤부터 시작합니다.
예시)
- code=[1, 2, 3, 4, 5], k=3
- [2+3+4, 3+4+5, 4+5+1, 5+1+2, 1+2+3] => [9, 12, 10, 8, 6]
- code=[1, 2, 3, 4, 5], k=-3
- [3+4+5, 4+5+1, 5+1+2, 1+2+3, 2+3+4] => [12, 10, 8, 6, 9]
- code=[1, 2, 3, 4, 5], k=0
- [0, 0, 0, 0, 0]
2. 풀이
이번 문제는 사실 주어진 조건대로 구현하기만 하면 되는 문제입니다.
다만 신경 쓰면 좋을 부분은 k개의 합을 구할 때 매번 구하지 않고,
이전에 구한 합에서 맨 앞의 숫자를 빼고 뒤의 숫자만 더해가는 것입니다.
이렇게 하니 runtime 효율성은 확실히 챙겨지더라고요!
+ 코드
더보기
class Solution:
def decrypt(self, code: List[int], k: int) -> List[int]:
result = []
if k > 0:
s = sum(code[:k])
for i in range(len(code)):
s = s - code[i] + code[(i+k)%len(code)]
result.append(s)
elif k < 0:
s = sum(code[k-1:-1])
for i in range(len(code)):
s = s + code[i-1] - code[(i+k-1)%len(code)]
result.append(s)
else:
result = [0] * len(code)
return result
반응형
'알고리즘 > 문제풀이' 카테고리의 다른 글
[leetcode] 2516. Take K of Each Character From Left and Right #2 (0) | 2024.11.22 |
---|---|
[leetcode] 2516. Take K of Each Character From Left and Right (2) | 2024.11.21 |
[leetcode] 2563. Count the Number of Fair Pairs #2 (0) | 2024.11.17 |
[leetcode] 2563. Count the Number of Fair Pairs (3) | 2024.11.15 |
[leetcode] 3097. Shortest Subarray With OR at Least K II #2 (4) | 2024.11.13 |