[shell script] 줄을 입력하면 속이 빈 직각삼각형을 출력하는 문제

HYEOB KIM·2022년 4월 25일
0

Shell

목록 보기
40/71

쉘 스크립트로 구현할 수 있는 머리가 말랑말랑해지는 문제!

문제

Q. 줄의 개수를 입력하면 그 수의 크기만큼 속이 빈 직각삼각형을 만드세요.

예시) 5를 입력

*
**
* *
*  *
*****

예시) 10을 입력

*
**
* *
*  *
*   *
*    *
*     *
*      *
*       *
**********

.
.
.
.
.
.

문제 풀이

위 문제는 3가지 규칙이 존재합니다.

  1. 각 라인의 첫 번째 열에 *이 표시됩니다.
  2. 각 라인의 마지막 열에 *이 표시됩니다.
  3. 라인의 마지막 줄은 라인 넘버만큼 *이 표시됩니다.

shell 코드

#!/bin/bash
read -p "input: " line
for (( l=0; l<line; l++))
do
        for (( s=0; s<l+1; s++ ))
        do
                if (( l == line - 1 || s == 0 || s == l ))
                then
                        echo -n "*"
                else
                        echo -n " "
                fi
        done
        echo
done
  • line이라는 입력 변수에 라인의 총 개수를 입력합니다.
  • l : 첫 번째 라인부터 하나씩 순서대로 조회합니다.
  • s : l 라인 내에서 열을 하나씩 순서대로 조회합니다.
  • if문을 이용해 위에서 제시한 3가지 조건을 만족하면 *을 출력하고,
    만족하지 못하면 (빈칸)을 출력합니다.
  • 안쪽 for문이 끝날 때 echo를 통해 줄바꿈 합니다.
profile
Devops Engineer

0개의 댓글