크래프톤 정글

크래프톤 정글 8기 - 8일차 TIL

고웅 2025. 3. 18. 23:02

정글 8일 차 TIL 및 회고 시작

8일 차 주요 이슈 : 오후 2시 퀴즈

8일 차의 주요 이슈로는 매주 화요일에 있다는 주차별 퀴즈 시간이었다.  1주 차 알고리즘 스터디를 시작하면서 학습 키워드에 포함된 내용과 추가적으로 CSAPP(컴퓨터 시스템) 1-4 장까지의 범위에서 퀴즈가 출제되었다. 그리고 퀴즈를 풀면서 문제가 있었던 부분과 회고를 작성하고자 한다.

문제 1

문제 1

첫 문제는 기초적인 코드 실행에 대한 문제였다. 파이썬 프로그램에서 함수의 실행 시 호출되는 순서와 순차적으로 출력을 하는 내용에 대한 문제였다.

문제 2

문제 2 : 재귀

재귀 함수의 장단점에 대한 설명이었다.

재귀의 장점 :

  • 소스코드의 가독성과 간결성을 증가시킨다.
  • 변수 사용을 최소화 한다.

재귀의 단점 :

  • 메모리 사용량이 증가하며 디버깅이 어렵다.
  • 시간 복잡도를 계산하기 어렵다
  • 잘 못 사용 시 스택오버플로우가 발생할 수 있고 빈번한 스택메모리 할당/해제로 실행 속도가 느릴 수 있다.

문제 3

문제 3

반복문 사용

def fibonacci_loop(n): 
    if n <= 0: 
        return [] 
    elif n == 1: 
        return [1] 
    elif n == 2: 
        return [1, 1] 
     
    fib_seq = [1, 1] 
    for i in range(2, n): 
        fib_seq.append(fib_seq[i-1] + fib_seq[i-2]) 
    return fib_seq

재귀 사용

def fibonacci(n): 
    if n <= 0: 
        return [] 
    elif n == 1: 
        return [1] 
    elif n == 2: 
        return [1, 1] 
    else: 
        sequence = fibonacci(n - 1) 
        sequence.append(sequence[-1] + sequence[-2]) 
        return sequence

위 코드들은 정답으로 제시된 코드이다. 내가 작성한 코드는 손으로 적었으며 매우 지저분하고 동작하지 않을 것 같은 코드라 별도로 포함하지는 않았다. 퀴즈를 풀며 다시 느끼지만 코드를 손으로 적는다는 것은 매우 어려웠다. IDE의 도움이 없으니 사소한 실수도 많이 발생할 것 같은 코드를 손으로 작성하고 있었다.

문제 4

문제 4
제출 이미지

퀵정렬에 대한 것을 책을 보며 그림으로 설명하라는 문제였다. 이 문제는 시험 보기 1시간 전 조원들과 커뮤니티 룸에서 각자 그림을 그리고 비교하며 준비했던 문제였다. 물론 전날에 이 부분이 나온다고 공지해 주었기 때문에 준비할 수 있었다. 하지만 내가 간과한 것이 있었는데 책의 코드를 참고하라는 것이었다. 책에서는 pivot을 정할 때 left와 right를 더하고 2로 나눈 값을 pivot으로 설정해서 내가 그린 그림과는 다른 모양이 나오게 되는 것이었다. 하지만 퀵 정렬에서 pivot을 설정하는 것은 자유다라고 알고 있었기에 위 내용이 틀린 것은 아니나 책을 기준으로 한다면 틀린 것이 되었다.

문제 5

문제 5

마지막 문제는 CSAPP책에서 나온 문제이다. 문제를 보고 가장 당황했다. 조원들과 사전에 코어타임을 가지며 논의했던 부분은 이 파트가 아니라 프로그램이 변환되어 실행되기 위한 과정과 프로그램이 실행되기까지 거치는 컴퓨터의 구조에 대한 것을 주로 논의했는데 생각지 못했던 부분에서 문제가 나와 당황했다. 결국 ALU 정도는 작성할 수 있었는데 그 마저도 파고들면 내용이 다르다고 생각이 되는 답을 작성했다.

오늘 퀴즈를 풀어보고 느끼고 고쳐야겠다는 점으로는 역시 책이든 개념이든 매우 꼼꼼하게 배우고 기억해야 한다는 것이었다. 재귀든 퀵 정렬이든 컴퓨터 시스템 문제든 내가 큰 틀을 안다고 생각하고 세부적인 개념들을 놓치고 있었기에 오늘 문제를 보고 당황하기도 하고 제대로 풀어내지 못했던 것 같다.

하지만 아직 1주 차고 앞으로 더 많은 시간이 남아 있으니 오늘의 실수를 기반 삼아 더 철저히 준비하고 더 많이 배우고 기억하고 기록하도록 노력해야겠다.