Programming

[BOJ] 1120 문자열

minigb 2021. 4. 24. 15:29

 

 

1120번: 문자열

길이가 N으로 같은 문자열 X와 Y가 있을 때, 두 문자열 X와 Y의 차이는 X[i] ≠ Y[i]인 i의 개수이다. 예를 들어, X=”jimin”, Y=”minji”이면, 둘의 차이는 4이다. 두 문자열 A와 B가 주어진다. 이때, A의

www.acmicpc.net

 

중간고사 준비하면서 Bash와 친해지기 위해 문제를 풀어봤다. 확실히 이렇게 하고 나니까 확 익숙해졌다!

shell script 처음엔 정말.. 답답했는데 계속 하다보니까 재밌다.

나중에 심심할 때 Bash로 쉬운 문제들 풀어봐야겠다.

read s1 s2

s1Len=${#s1}
s2Len=${#s2}

if [ $s1Len -gt $s2Len ]; then
        tmp=$s1
        s1=$s2
        s2=$tmp

        s1Len=${#s1}
        s2Len=${#s2}
fi

ans=9999
s2Start=0

while [ $(($s2Start + $s1Len - 1)) -lt $s2Len ]; do
        i=0
        j=$s2Start
        count=0
        while [ $i -lt $s1Len ] && [ $j -lt $s2Len ]; do
                c1=${s1:$i:1}
                c2=${s2:$j:1}
                if [ $c1 != $c2 ]; then
                        count=$(($count+1))
                fi
                        i=$(($i+1))
                j=$(($j+1))
        done
        if [ $ans -gt $count ]; then
                ans=$count
        fi
        s2Start=$(($s2Start + 1))
done

echo $ans