[2024] day 154. leetcode 3110. Score of a String

gunny·2024년 6월 2일
0

코딩테스트

목록 보기
468/530

2024년부터 새롭게 다시 시작하는 코딩테스트

2024년 6월 1일 (토)
Leetcode daily problem

3110. Score of a String

https://leetcode.com/problems/score-of-a-string/?envType=daily-question&envId=2024-06-01

Problem

문자열 s가 주어졌을 때, 문자열을 구성하는 문자의 아스키 코드의 차이의 절대값 합을 반환한다.

예를 들어 s= "hello" 인 경우, 'h'는 104, e는 101, l은 108, o = 111 이면 |104-101| + |101-108| + |108-108| + |108-111| = 3 + 7 + 0 + 3 = 13 이다.

Solution

ascii values

주어진 문자열을 끝까지 순회하면서, 현재 인덱스의 원소의 아스키코드와 다음 인덱스의 아스키코드의 차이의 절대값을 최종 값을 반환할 변수에 업데이트 한다. 이때 탐색 할 때 인덱스 다음 원소의 값을 할당하므로, 탐색은 첫번째 인덱스에서 문자열의 인덱스길이의 -1까지만 탐색해야 인덱스 오류가 나지 않는다.

Code

class Solution:
    def scoreOfString(self, s: str) -> int:
        ans = 0 
        for i in range(len(s)-1):
            ans += abs(ord(s[i])-ord(s[i+1]))
            
        return ans

Complexicity

시간 복잡도

주어진 문자열은 한 번씩 탐색하므로 O(n)이 소요된다.
나머지 연산은 상수 연산이므로 O(1)이라 전체 시간 복잡도는 O(n) 이다.

공간 복잡도

상수의 값만 변수에 할당하므로 전체 공간 복잡도는 O(1) 이다.

profile
꿈꾸는 것도 개발처럼 깊게

0개의 댓글