문제
18406번: 럭키 스트레이트
첫째 줄에 점수 N이 정수로 주어진다. (10 ≤ N ≤ 99,999,999) 단, 점수 N의 자릿수는 항상 짝수 형태로만 주어진다.
www.acmicpc.net
풀이
- 문자열을 절반씩 슬라이싱해서 first,second로 나눔
- 각 문자열을 list 형변환
- list요소를 int로 mapping
- sum(firstArr),sum(secondArr) 비교 후 print
코드
from sys import stdin
input = stdin.readline
N = input()
def main():
middle = len(N)//2
first = N[:middle] # 첫 번째 부분은 middle까지 포함
second = N[middle:] # 두 번째 부분은 middle부터 끝까지
firstArr = map(int,list(first)) # '123' -> list(first) -> [1,2,3] 리스트로 변환
secondArr = map(int,list(second))
if sum(firstArr) == sum(secondArr):
print('LUCKY')
else:
print('READY')
main()
참고사항
- list(문자열)<문자열을 리스트로 변환하기> : 123' -> list(first) -> [1,2,3] 리스트로 변환
- 이터러블: 이터러블 객체는 리스트, 튜플, 딕셔너리, 세트, 문자열 등을 포함하며, 이들의 요소를 하나씩 차례로 반환할 수 있는 객체를 말합니다.
- sum(): 숫자 요소를 가진 이터러블에만 동작함.
- sum(): 함수는 숫자 요소를 가진 이터러블에만 사용할 수 있습니다. 문자열과 같이 숫자가 아닌 요소를 가진 이터러블에 sum() 함수를 사용하려고 하면 오류가 발생합니다.