ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 19.6 심사문제 역삼각형 모양 별출력
    코딩도장 심사문제모음 2020. 10. 8. 21:39
    728x90

    코딩 도장 Python

    19.6 심사 문제 역삼각형모양의 별출력 (입력값)

    표준 입력으로 삼각형의 높이가 입력됩니다. 입력된 높이만큼 산 모양으로 별을 출력하는 프로그램을 만드세요(input에서 안내 문자열은 출력하지 않아야 합니다). 이때 출력 결과는 예제와 정확히 일치해야 합니다. 모양이 같더라도 공백이나 빈 줄이 더 들어가면 틀린 것으로 처리됩니다.

    사용된 코드

    1 .int

    2. input

    3. for 문

    4 if 문

    5. print

    6. range

    더보기

    # 5 (input)

    # 0     4      출력 ( 0 1 2 3 4 5 6 7 8)

    # 1    345     출력 ( 0 1 2 3 4 5 6 7 8)

    # 2   23456    출력 ( 0 1 2 3 4 5 6 7 8)

    # 3  1234567   출력 ( 0 1 2 3 4 5 6 7 8)

    # 4 012345678  출력 ( 0 1 2 3 4 5 6 7 8)  

     

    # 3 (input)

    # 0 -   2     출력 ( 0 1 2 3 4)

    # 1 -  123    출력 ( 0 1 2 3 4)

    # 2 - 01234   출력 ( 0 1 2 3 4)

    첫 접근 방법

    위와 같이 보았을때 처음에는 rangn(2*H-1) 으로 range 값에 따라 바뀌도록 해보았지만, 뻘짓이었다.

     

    1. 첫 코드에서는 입력값 -1 출력

    2. 아래 줄로 내려갈수록 초기값을 기준으로 가지치듯 하나씩 추가되는 것을 확인하였고

    3. range(2*H-1)등 개 뻘짓을 한 결과, 약 20분이나 고민한 끝에 한방에 풀지 못하고 힌트를 봐야했다.

     

    풀이

    결론 : for 반복문 두개를 결합

     

    1. for문법에 reversed 메서드를 결합해 아래와 같은 출력문을 하나 만든다. 

    더보기

    H = int(input())

     

    for i in range(H):

        for j in reversed(range(H)):

            if i >= j :

                print('*'end='')

            else :

                print(' 'end='')

     

    2. for문법으로 아래와 같은 출력문을 하나 더 만든다. 

    더보기

        for j in range(H) :

            if i > j :

                print('*'end='')

            else:

                print(' 'end='')

    3. 이 둘을 합쳐 하나의 for 문안의 루프를 만들고, 바깥루프의 for문의 print() 출력 문구를 추가해 줄바꿈을 해주면 완성.

    더보기

    H = int(input())

    for i in range(H):

        for j in reversed(range(H)):

            if i >= j :

                print('*'end='')

            else :

                print(' 'end='')

        for j in range(H) :

            if i > j :

                print('*'end='')

            else:

                print(' 'end='')

        print()

     

    ※ 실제 코딩 도장의 해법과 다를  수 있으며, 답은 여러가지가 존재합니다.

    코딩 지적 정말 감사히 받겠습니다.

    ※ 점섬의 텍스트 박스가 접은글이었네요.. 클릭 감사합니다.

     

    728x90
Designed by Tistory.