Implementation 07 럭키 스트레이트(백준 18406)

2022. 10. 23. 14:50Dev.Study/CS·SW·Algorithm

728x90

이 문제는 생각보다 쉽게 푼 거 같다.

data = 1234
n = list(map(int,str(data))) # 리스트로 숫자 하나씩 담기
x, y = 0, 0 # 앞자리, 뒷자리 합 담을 변수
for i in range(len(n)):
    if i < len(n)/2:
        x += n[i]
    else:
        y += n[i]

if x == y: # 앞, 뒤 합이 같을 경우 LUCKY
    print('LUCKY')
else: # 아닐 경우 READY
    print('READY')

이렇게 data를 받아와서 리스트로 하나씩 담아내고

for문을 돌려서 앞자리, 뒷자리 합을 각각 구하는 방식으로 풀었다.

 

원래 백준사이트에 있던 문제라 백준 들어가서 제출해봤다.

맨 윗 줄에 def solution(n): 한 줄 추가해서

def solution(n):
    data = list(map(int,str(n))) # 리스트로 숫자 하나씩 담기
    x, y = 0, 0 # 앞자리, 뒷자리 합 담을 변수
    for i in range(len(data)):
        if i < len(data)/2:
            x += data[i]
        else:
            y += data[i]

    if x == y: # 앞, 뒤 합이 같을 경우 LUCKY
        print('LUCKY')
    else: # 아닐 경우 READY
        print('READY')

이대로 제출했는데

컴파일 에러? 아 언어 C++17 그대로 제출했구나.

난 파이썬이니까 파이썬으로 변경해본다.

근데 틀렸다고 나와서 물음표 한가득

 

주어진 데이터를 받아와야 하는 거라 input() 값을 직접 받아야 했다.

n = int(input())
data = list(map(int,str(n))) # 리스트로 숫자 하나씩 담기
x, y = 0, 0 # 앞자리, 뒷자리 합 담을 변수
for i in range(len(data)):
    if i < len(data)/2:
        x += data[i]
    else:
        y += data[i]

if x == y: # 앞, 뒤 합이 같을 경우 LUCKY
    print('LUCKY')
else: # 아닐 경우 READY
    print('READY')

첫 줄에 int(input()) 값을 추가해주고 나서야

정답처리가 되었다!

어렵다 어려워~.~

 

참고 : 이것이 코딩테스트다 p321 Q07 럭키 스트레이트 [https://www.acmicpc.net/problem/18406]

 

728x90

'Dev.Study > CS·SW·Algorithm' 카테고리의 다른 글

Greedy 01 모험가 길드  (0) 2022.10.13
통합구현  (1) 2022.10.08
인터페이스 구현 / [팀프로젝트]DB설계  (1) 2022.10.08
요구사항확인  (0) 2022.10.07