아하
생활

생활꿀팁

너그러운향고래72
너그러운향고래72

파이썬 369게임 질문드립니다

369게임 코드 만드는 문제에서 제가 이렇게 코드를 작성했는데 여기서 369숫자가 나온 만큼 짝!을 나오게 하려면 어떻게 해야 하나요??

예를 들어 3이면 짝! 36이면 짝! 짝! 이렇게요

도와주시면 정말 감사하겠습니다ㅠㅠ

55글자 더 채워주세요.
4개의 답변이 있어요!
  • 위대한거북이239
    위대한거북이239

    0 ~ 9 까지 배열을 만들어두고 숫자의 나머지를 저장한 후, 다시 10으로 나누고 나머지를 저장합니다.

    즉, 32435라는 숫자가 있다면

    32435 % 10 = 5 -> arr[5] ++

    32435 /= 10 -> 3243

    3243 % 10 = 3 -> arr[3] ++

    3243 /= 10 -> 324

    324 % 10 = 4 -> arr[4] ++

    324 /= 10 -> 32

    32 % 10 = 2 -> arr[2] ++

    32 /= 10 -> 3

    3 % 10 = 2 -> arr[3] ++

    3 /= 10 -> 0, 종료

    마지막에 arr[3] + arr[6] + arr[9]에 있는 값을 다 더한 만큼 for문을 이용해 "짝"을 출력하면 됩니다.

  • [수정 소스]

    # -- coding: utf-8 --

    """

    Created on Sun May 16 15:50:27 2021

    @author: raven90

    """

    N = int(input("몇 번째 턴까지 출력할까요? "))

    c = 0

    for i in range(1, N+1):

    c += 1;

    a = i//10

    b = i%10

    strMsg1 = ""

    strMsg2 = ""

    if a == 3 or a == 6 or a == 9:

    strMsg1 = "짝!"

    if b == 3 or b == 6 or b == 9:

    strMsg2 = "짝!"

    if (strMsg2 != "") :

    print(strMsg1 + strMsg2)

    else :

    print(c)

    [실행결과 캡쳐]

  • 탈퇴한 사용자
    탈퇴한 사용자

    안녕하세요

    샘플 소스 입니다.

    N = int(input('몇 번째 턴까지 출력할까요?')) for i in range(1, N + 1): num = str(i) clap = '' for j in num: if j == '3' or j == '6' or j == '9': clap += '짝!' if clap == '': print(i) else: print(clap)

  • 코드를 보면 십의 자리와 일의 자리를 미리 나누고 조건문에서 판별하는 방식을 쓰신 것으로 보이는데 그것보다는

    조건문에서 판별하는 것이 더 좋을 듯 싶습니다.

    if 조건을 간략하게 쓰자면

    if (입력값 / 10 == 3 or 입력값 / 10 == 6 or 입력값 / 10 == 9) or (입력값 % 10 == 3 or 입력값 % 10 == 6 or 입력값 % 10 == 9):

    Print("짝!")

    if (입력값 / 10 == 3 or 입력값 / 10 == 6 or 입력값 / 10 == 9) and (입력값 % 10 == 3 or 입력값 % 10 == 6 or 입력값 % 10 == 9):

    Print("짝짝!")

    이러한 방식을 쓰시는 것이 제일 좋을 듯 싶습니다.