본문 바로가기

Algorithm/Implementation

럭키 스트레이트

 

문제

항상 짝수자릿수에 대해서 반으로 나눠서 왼쪽의 합과 오른쪽의 합이 같으면 "Lucky", 아니면 "Ready" 출력하라.

 

 

유형

요구한 것을 그대로 구현하면 되는 문제이다.

 

 

코드

def solution(input):
    result1 = 0
    result2 = 0
    mid_index = int(len(input)/2)-1
    for i in range(len(input)):
        if i <= mid_index:
            result1 += int(input[i])
            continue
        result2 += int(input[i])
    if result1 == result2:
        print("LUCKY")
    else:
        print("READY")

input1 = "123402"
input2 = "7755"
solution(input1)
solution(input2)

 

해결

1. 입력을 스트링으로 저장한다.

2. 왼쪽 합, 오른쪽 합을 담을 result1, result2를 준비한다.

3. 기준이 될 중간인덱스를 구한다.

4. 중간 인덱스를 기준으로 result1, result2를 구한다.

5. 결과 출력

 

 

 

시공간 복잡도

기본적으로 복잡도는 O(N)이다. for문을 통해 한번에 구하므로 그렇다.

그래서 최대 N = 99999999로 해봤자 8번의 연산을 한다. 공간복잡도 또한 딱히 고려할 요소가 없다. 

'Algorithm > Implementation' 카테고리의 다른 글

  (0) 2023.04.09
문자열 재정렬  (0) 2023.04.09
게임 개발  (0) 2023.04.09
왕실의 나이트  (0) 2023.04.08
시각  (0) 2023.04.08