항해99 2주차 회고 (알고리즘 편)

최예닮·2022년 10월 2일
0
post-thumbnail

??? 이게 뭐지 ???

후기에서 보았던 지옥같은 알고리즘이 이런것이었구나 !

(이번주에 내가 나 자신에게 수도 없이 했던 말....이다...)

글을 읽었는데 이게 무슨말인지 접근도 할 수 없었고 무슨 식을 써야하는지도 도무지 감이 잡히지 않았다.

1-2시간 생각해보고 떠오르지 않는다면 구글링을 해보라고 주위에서 말을 해줬는데 솔직히 자존심 상해서 내가 풀거야 !!! 라는 미친생각에 사로잡혀 하루를 그냥 통으로 날려버렸ㄷㅏ....

(지금에 내가 저번주에 나에게 ...^^)

물론 그렇다고해서 완전히 소득이 없었던건 아니다. 진짜 아예 몰라서 혼자 공부하는 자바스크립트 책을 정독하며 강의를 보았는데 아니 1번문제와 거의 비슷하고 유사한 문제가 예시로 있지 않은가??!!!

이... 이건 답지를 본게 아냐 !! 강의중에 있는 풀이과정이니 어떻게 하는지 똑똑히 지켜보겠어 !!

그 이름하여 직사각형 별짓기었다.

솔직히 아직 for문에 대한 이해도가 단 1도 없었기 때문에 이건 내가 머리를 끙끙 싸매도 검색해보거나 이 강의를 듣지 않았으면 영원히 풀리지 않았겠구나 하며 잠시 실의의 빠졌지만....

책에서 나와 있는 설명은 for 중첩문을 이용하는거였다.

    <script>
    let output = ''

    for (let i = 0; i < 10; i++) {
        for (let j = 0; j < i; j++) {
        output += '*'
    }
        output += '\n'
    }
        console.log(output)
    </script>

이걸 보았을때 솔직히 이해가 잘 되지 않았었다. for문을 왜 중첩하면 별이 문단마다 하나씩 늘어나는지 말이다.
그래서 구글링으로 for문 중첩문을 검색해 보았는데 아주 좋은 예시가 있었다. 바로 구구단 만들기었다.

예시를 바로 보여주겠다.

  <script>
      for(var i = 2; i <= 9; i++){
         for(var j = 1; j <= 9; j++){
            document.write(i + "x" + j + "=" + i*j + "<br>");
         }
      }
</script>

그리고 결과값은

2x1=2
2x2=4
2x3=6
2x4=8
2x5=10
2x6=12
2x7=14
2x8=16
2x9=18
3x1=3
3x2=6
3x3=9
3x4=12
...생략
9x9=81

이걸 딱 보니까 나의 머리 뒤로 레이저가 지나가는것이다 !!!

해설을 해보자면

i값이 9 보다 작거나 같으면 참으로 밑에 로 내려와서 j열이 도는데 이때 j가 숫자로 지정한 1~9까지 참으로 결과 값으로 나오는구나 !
그래서 i 값인 2가 먼저 한번 돌면 참이니까 j 가 1~9까지 돌고 이런식으로 반복되어서 중첩이 된다는 사실을 생각보다 간단히 깨닫게 되었다.

.... 내 하루 날린거 갖고와 !!! ㅠㅠㅠ

그래도 기분이 좋았다. 그 다음부터는 문제를 슥슥풀어서 어려움 없이 직사각형 문제를 풀게되었다.

아니 근데 프로그래머스에 식을 입력을하는데 답이 맞는데 틀리다고 나오는것이다 !!!

대체 뭐지 직사각형 나왔잖아 !!!!! 하면서 혼자 끙끙앓고 앓고 시간을 보내다가 도저히 안되겠어서 팀원에게 도움을 요청했다.

왜 저는 통과가 안되나요ㅠㅠㅠㅠㅠㅠㅠ

답은 멀지 않은곳에 있었다...

저기 console.log(a),console.log(b) 가 보이는가.... 저거 안지워서였다. ^_^

화남을 참아내고 비슷한 레벨류의 사람들끼리 모여서 안되는 문제들을 고민하고 생각하면서 순차적으로 풀어나아가니 조금씩 문제를 풀때 어떻게 접근해야하고 풀어가야하는지 화요일부터 잡혀나아가기 시작했다.
무려 3일만에 조금의 감을 잡은것이다...ㅠㅠㅠㅠ

감을 잡는데 참으로 오랜시간이 걸렸지만 그 다음부터는 수월은... 개뿔 여전히 어렵게 풀어나아갔다. 하지만 이제는 어떻게 구글링을 해야하는지 어떤 메소드를 검색해야하는지 조금의 노하우를 터득하여 풀어나아갔고 28번까지의 문제를 다 풀었으면 드라마틱하게 끝났겠지만... 아쉽게도 24번까지 풀어냈다.

하지만 알고리즘은 꾸준히 계속 반복하면서 풀 예정이니 다 풀거다 !!

이번주는 나에게 정말 잘해냈다고 칭찬하고 싶고 정말 바닥부터 아무것도 모르는 내가 이시간을 버티고 이번 알고리즘 주차를 통해서 for문과 if문의 사용법을 정말 조금이라도 알게된 것이 기뻤다.

알고리즘 문제 풀었던건 조만간 이 곳에 올릴 계획이다! 그럼 20000!

profile
산을 오르려고 하는데 이제 주차장에 막 주차한 초보개발자

0개의 댓글