철갑이의 이모저모

[백준] 18406번(럭키 스트레이트) with Python 본문

알고리즘

[백준] 18406번(럭키 스트레이트) with Python

철갑 2020. 10. 2. 15:13
728x90

문제

 

18406번: 럭키 스트레이트

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

www.acmicpc.net

풀이

len()으로 받아온 값의 자릿수를 구해주고 절반씩 나눠 누적값을 구해줬다. 누적값의 경우, 예를 들어 a에서 123402를 받아오면 ['1', '2', '3', '4', '0', '2']처럼 요소로 이루어진 리스트처럼 여겨지기 때문에 a[i]로 인덱싱해서 누적해주었다.

a = input()
b = 0
c = 0
if len(a) % 2 == 0 :
  for i in range(0,len(a) // 2) :
    b += int(a[i])
  for i in range(len(a) // 2, len(a)) :
    c += int(a[i])
  if b == c :
    print('LUCKY')
  else :
    print('READY')
else :
  print('다시 입력해주세요')

N = input()
arr = [0]
sum = 0
for i in N :
  sum += int(i)
  arr.append(sum)

if len(N) % 2 == 0 :
  if (arr[len(N) // 2]-arr[0]) == (arr[len(N)] - arr[len(N) // 2]) :
    print('LUCKY')
  else :
    print('READY')
else :
  print('다시 입력해주세요')

누적합을 이용해서 풀어본 것

728x90