반응형
dackyy
대기의 연대기
dackyy
전체 방문자
오늘
어제
  • 분류 전체보기 (49)
    • java (7)
    • 코딩테스트 (23)
    • python (10)
    • Network (2)
    • Web (7)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 비트 연산자
  • 비교 연산자
  • 자료형
  • 기본 자료형
  • 배열생성
  • 연산
  • 증감 연산자
  • java
  • 배열
  • TLS
  • 참조 자료형
  • https
  • SSL
  • 제어문
  • 반복문
  • switch
  • 시프트 연산자
  • 조건문
  • 산술 연산자
  • 논리 연산자

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
dackyy

대기의 연대기

python

[Python] 다양한 별찍기 (while문)

2022. 7. 26. 11:29
반응형
#모든 메소드는 "*"과 "" 을 가지고 result에 별을 추가하는 방식
def one(star, result):
    cnt = 4
    while cnt > 0:
        ct = 5
        while ct > 0:
            result += star
            ct -= 1
        result += "\n"
        cnt -= 1
    return result


def two(star, result):
    cnt = 0
    while cnt < 4:
        j = 0
        while j < cnt:
            result += star
            j += 1
        result += "\n"
        cnt += 1
    return result


def three(star, result):
    cnt = 1
    while cnt < 4:
        j = 3 - cnt
        while j > 0:
            result += " "
            j -= 1
        result += star * cnt
        result += "\n"
        cnt += 1
    return result


def four(star, result):
    cnt = 1 #높이가 고정되있으므로 공백을 2로 고정시키고, 반복문 종료마다 한개씩 줄어듬
    j = 2
    while cnt < 6:
        result += " " * j
        result += star * cnt
        result += "\n"
        cnt += 2
        j -= 1
    return result


def five(star, result):
    l = 3
    result = four(star, result)#마름모 윗뚜껑 가져오기
    cnt = 1
    while cnt < 3:
        #k를 공백의갯수로 잡고 마름모 밑부분 추가
        result += " " * cnt
        result += star * l
        result += "\n"
        l -= 2
        cnt += 1
    return result


def six(num, result):
    a = int(num / 2) # int 로 형변환 하여 소숫점 없애기
    l = int(num / 2) # 마름모 밑부분의 행의 갯수와 동일
    cnt = 1
    while cnt < num + 1:
        result += " " * a
        result += "*" * cnt
        result += "\n"
        a -= 1
        cnt += 2
    ct = 1
    while ct < l+1:
        num -= 2
        result += " " * ct
        result += "*" * num
        result += "\n"
        ct += 1
    return result


star = "*"
start = ""
menu = int(input("원하는 과제를 쓰세요 1 ~ 6 : "))
if menu == 1:
    print(one(star, start))
elif menu == 2:
    print(two(star, start))
elif menu == 3:
    print(three(star, start))
elif menu == 4:
    print(four(star, start))
elif menu == 5:
    print(five(star, start))
elif menu == 6:
    me = int(input("출력할 마름모의 값을 입력하시오 : "))
    if me % 2 == 1:
        print(six(me, start))
    else:
        print("홀수만 입력해주세요!")
else:
    print("잘못 입력했습니다!")
반응형

'python' 카테고리의 다른 글

[Python] 몰입형 코딩도장 3~12 심사문제  (0) 2022.07.27
[Python] 로또 경우의 수 프로그램  (0) 2022.07.26
[Python] 다양한 별찍기 (for문)  (0) 2022.07.26
[python] 사칙연산 계산기  (0) 2022.07.26
[python] 백준 알고리즘 2480번 주사위 세개  (0) 2022.07.25
    'python' 카테고리의 다른 글
    • [Python] 몰입형 코딩도장 3~12 심사문제
    • [Python] 로또 경우의 수 프로그램
    • [Python] 다양한 별찍기 (for문)
    • [python] 사칙연산 계산기
    dackyy
    dackyy

    티스토리툴바