문제를 작게 나누어 보기
앞에서 알고리즘은 '문제를 푸는 정해진 순서'라고 했죠. 그런데 큰 문제 앞에선 그 순서가 도통 안 떠올라요. 비결은 하나예요. 한 입에 안 들어가면, 같은 꼴의 작은 조각으로 쪼개는 거예요.
한 입에 안 들어가요
방을 통째로 치우라고 하면
막막하죠.
어디서부터 손대야 할지
순서가 안 떠올라요.
큰 문제는 원래 그래요.
한 덩어리로 보면
너무 커서 한 입에 안 들어가요.
큰 문제 덩어리를 눌러보세요. 작은 조각들로 쪼개져요. (방 치우기 → 책상 · 침대 · 바닥 · 책장)
방을 통째로 보면 막막했는데,
책상, 침대, 바닥, 책장으로
쪼개고 나니
갑자기 할 만해 보이죠.
큰 문제를 푸는 첫걸음은
바로 이거예요.
작게 쪼개는 것.
같은 꼴, 더 작은 문제
쪼갠 조각을 잘 보면
재밌는 게 있어요.
조각도 결국 '치우기'예요.
방을 치우는 일이
책상을 치우는 일로
작아졌을 뿐이죠.
조각은 원래 문제와
같은 꼴, 더 작은 문제예요.
조각 하나를 눌러 들여다보세요. 그 안도 결국 같은 꼴의 더 작은 문제예요. (책상 치우기도 = 치우기)
이게 왜 좋냐면,
큰 문제를 푸는 머리만 있으면
작은 조각도 같은 머리로
풀 수 있거든요.
새 방법을 안 배워도 돼요.
같은 꼴이니까,
쓰던 방법을 그대로
작게 쓰면 돼요.
조각에 순서를 세워요
쪼개기만 하면 끝이 아니에요.
조각들도 순서가 있어요.
바닥에 물건이 널렸는데
바닥부터 쓸면
다시 어질러지죠.
책상, 침대 위를 먼저 치우고
맨 마지막에 바닥을 쓰는 게
옳은 순서예요.
조각을 눌러 처리할 순서대로 줄 세워보세요. 위(책상·침대·책장)를 먼저, 바닥을 맨 마지막에 두면 맞아요.
순서를 맞게 세우니
조각들이 서로 안 부딪쳐요.
앞 조각이 망친 걸
뒤 조각이 또 치우는 일이
없어지죠.
1강에서 본 그대로예요.
같은 조각들이라도
순서가 다르면 결과가 달라요.
조각 답을 합쳐요
조각을 하나씩 다 풀었어요.
책상도, 침대도, 바닥도
깨끗해졌죠.
그런데 잠깐,
조각만 풀었지
방은 아직 안 끝난 거 아닌가요?
아니에요.
조각이 다 풀리면,
그게 모여 방이 깨끗해진 거예요.
푼 조각들을 차례로 눌러 합쳐보세요. 조각 답이 다 모이면, 그게 바로 큰 문제의 답(방이 깨끗해짐)이에요.
그러니까 합치기는
공짜로 되는 게 아니에요.
조각 답들을 모아서
하나로 잇는 것도
엄연히 한 단계죠.
쪼개고, 순서대로 풀고, 합치고.
이 세 박자가 다 맞아야
큰 문제가 진짜로 풀려요.
정리: 쪼개고, 순서, 합치기
큰 문제 앞에서 막막할 땐
이 네 박자를 떠올려요.
첫째, 같은 꼴 작은 조각으로 쪼갠다.
둘째, 조각도 같은 문제임을 안다.
셋째, 옳은 순서를 세운다.
넷째, 조각 답을 합친다.
이게 컴퓨팅 사고의 출발이에요.
네 박자를 차례로 눌러 핵심을 정리해요. 쪼개기 → 같은 꼴 → 순서 → 합치기. 큰 문제를 다루는 한 장이에요.
이제 어떤 큰 문제를 만나도
무서워할 필요 없어요.
한 입에 안 들어가면
쪼개면 되니까요.
그런데 한 가지,
조각이 여러 개라면
그중 어떤 걸 먼저 할지,
순서가 정말 중요해지겠죠?
다음엔 그 줄 세우기, 정렬을 만져봐요.