아직도 못 푼 문제

아직도 못 푼 문제

오늘 회의하던 중에 ANSI C에 대한 얘기가 잠깐 나왔는데, 문득 대학교 1학년 때 c언어 시간에 책 뒤져보다가 얼핏 봤던 내용이 생각났다.
어떤 숫자를 입력하면
*
**
***
****
*****
****
***
**
*
이런 모양을 만드는 소스를 짜는 문제였는데, 풀어보지는 않았다.

약 3년 뒤, 군대갔다가 복학 기다리면서 저 문제가 문득 생각이 났는데, loop문 하나로만 풀려고했다가 결국 못 풀었다 ;;;

어디보자…loop문 하나만 써도 풀 수 있는 문제인가? ;;;

current가 max와 같아지면 더할 값을 -1로 바꾸면 되는거구나 ;;;;;

  • #!/bin/bash

    s=”#########”;
    j=-1
    for (( i=${#s}-1 ; ; i=i+j ))
    do
    echo “${s:$i} $i $j”
    [[ $i -eq 1 ]] && j=1
    [[ $i -eq ${#s}-1 ]] && [[ $j -eq 1 ]] && break
    done

    • 쉘 스크립트는 읽기도 어렵네요 ㄷㄷㄷㄷ