5_hyun 2022. 7. 19. 13:53
반응형

https://www.acmicpc.net/problem/18406

 

18406번: 럭키 스트레이트

첫째 줄에 점수 N이 정수로 주어진다. (10 ≤ N ≤ 99,999,999) 단, 점수 N의 자릿수는 항상 짝수 형태로만 주어진다.

www.acmicpc.net

 

해결법

이 문제는 숫자를 입력 받고 mid로 왼쪽 값과 오른쪽 값을 나눌 수 있다. 그리고 left, right에 값을 저장하고 left와 right가 같으면 LUCKY를 출력하고 다르면 READY를 출력한다.

 

코드

n = input()
ary = []

for i in range(len(n)):
    ary.append(int(n[i]))

left = 0
right = 0

mid = len(n) // 2

for i in range(mid):
    left += ary[i]

for i in range(mid, len(n)):
    right += ary[i]

if left == right:
    print("LUCKY")
else:
    print("READY")

 

교재 풀이

n = input()
length = len(n) # 점수 값의 총 자릿수
summary = 0

# 왼쪽 부분의 자릿수의 합 더하기
for i in range(length // 2):
    summary += int(n[i])

# 오른쪽 부분의 자릿수의 합 빼기
for i in range(length // 2, length):
    summary -= int(n[i])

# 왼쪽 부분과 오른쪽 부분의 자릿수 합이 동일한지 검사
if summary == 0:
    print("LUCKY")
else:
    print("READY")

교재에서는 왼쪽 값을 summary에 더한다. 그리고 오른쪽 값을 summary에서 빼가면서 summary가 0이 되면 LUCKY를 출력하는 방식으로 구현했다.

반응형