본문 바로가기
Algorithms/이코테

[구현] 이코테 기출 - 럭키 스트레이트(py)

by hi-rachel 2023. 7. 30.

문제

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

 

18406번: 럭키 스트레이트

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

www.acmicpc.net

 


풀이

- 내 풀이

n = list(input())

first = 0
second = 0

for i in range(len(n)):
  if i > len(n)/2-1:
    second += int(n[i])
  else:
    first += int(n[i])

if first == second:
  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")

 

아이디어

  • 문제에서 요구하는 바를 그대로 구현하면 해결할 수 있는 문제
  • 정수형 데이터가 입력으로 들어왔을 때, 이를 각 자릿수로 구분하여 합을 계산해야 한다. 파이썬의 경우 입력받은 데이터가 문자열 형태이므로, 문자열에서 각 문자를 하나씩 확인하며 정수형으로 변환한 뒤에 그 값을 합 변수에 더할 수 있다.

 


 

출처: 나동빈, 「이것이 취업을 위한 코딩테스트다 with 파이썬」, 한빛미디어, p.321, 515