The Chasm | Think Like A Coder, Ep 6

446,987 views ・ 2020-01-30

TED-Ed


아래 영문자막을 더블클릭하시면 영상이 재생됩니다.

번역: Soyun Cho 검토: Eunice Yunjung Nam
00:21
Ethic, Hedge, and Octavia stand on the edge of a bottomless ravine.
0
21937
4675
에틱, 헤지와 옥타비아는 끝이 보이지 않는 협곡에 서 있습니다.
00:26
It’s the only thing between them and the tower
1
26612
2690
타워에 가기 전에 이곳만 지나면
00:29
that houses the second of three powerful artifacts.
2
29302
3648
세 가지 유물 중 두 번째 유물이 완성됩니다.
00:32
They’ve got a brief window of time to get across before the guards return.
3
32950
4980
경비 로봇이 돌아오기 전까지 빠르게 길을 건너야 합니다.
00:37
With Hedge’s fuel gauge on empty he won’t be able to fly Ethic across,
4
37930
4705
헤지의 연료가 바닥나서 에틱을 비행시켜줄 수 없습니다.
00:42
so the only option is to make a bridge.
5
42635
3630
다리 건설이 유일한 해결책입니다.
00:46
Fortunately, the floating stacks of stones nearby are bridge components—
6
46265
4655
다행히, 주변에 떠 있는 돌무더기로 다리를 지을 수 있습니다.
00:50
invented by Octavia herself— called hover-blocks.
7
50920
4026
옥타비아가 개발한 호버블록이죠.
00:54
Activate a pile with a burst of energy,
8
54946
2552
에너지를 방출해 블록 더미를 활성화하면,
00:57
and they’ll self-assemble to span the ravine as Ethic walks across.
9
57498
4516
자동으로 조립되어 에틱이 건널 수 있게 협곡을 이어줍니다.
01:02
But there is, of course, a catch.
10
62014
3578
하지만 물론 문제점도 있습니다.
01:05
The hover-blocks are only stable when they’re perfectly palindromic.
11
65592
4659
호버블록은 완벽한 회문형일 때만 안정적인 상태를 유지합니다.
01:10
Meaning they have to form a sequence
12
70251
2260
즉, 동일한 배열 순서로 이뤄져야 합니다.
01:12
that’s the same when viewed forwards and backwards.
13
72511
4263
앞이나 뒤 어느 쪽에서 보아도요.
01:16
The stacks start in random orders,
14
76774
2170
이 더미는 처음에는 무작위로 놓이지만
01:18
but will always put themselves into a palindromic configuration
15
78944
3660
항상 회문형으로 재배치됩니다.
01:22
if they can.
16
82604
1290
가능할 때만요.
01:23
If they get to a point where a palindrome isn’t possible,
17
83894
2880
회문형 배열이 불가능할 때에는
01:26
the bridge will collapse,
18
86774
1551
다리가 붕괴합니다.
01:28
and whoever’s on it will fall into the ravine.
19
88325
3489
다리 위를 건너던 모든 이들이 협곡 아래로 추락할 것입니다.
01:31
Let’s look at an example.
20
91814
1638
예를 살펴볼까요.
01:33
This stack would make itself stable.
21
93452
2460
안정적인 상태를 유지하는 더미입니다.
01:35
First the A blocks hold themselves in place.
22
95912
3000
A블록이 먼저 양 끝에 위치합니다.
01:38
Then the B’s.
23
98912
1070
그 옆에 B블록이 붙습니다.
01:39
And finally the C would nestle right between the B’s.
24
99982
3690
마지막으로 그 사이에 C블록이 쏙 들어갑니다.
01:43
However, suppose there was one more A.
25
103672
3450
하지만, A블록이 한 개 더 있다고 가정해봅시다.
01:47
First two A blocks form up, then two B’s,
26
107122
3120
일단 양쪽에 A블록과 B블록이 차례로 하나씩 자리합니다.
01:50
but now the remaining C and A have nowhere to go,
27
110242
3370
하지만 남은 C블록과 A블록이 위치할 곳을 찾지 못하므로,
01:53
so the whole thing falls apart.
28
113612
2460
모든 블록이 무너집니다.
01:56
The Node of Power enables Hedge to energize a single stack of blocks.
29
116072
4670
헤지는 노드의 힘으로 블록 한더미를 활성화할 수 있습니다.
02:00
What instructions can Ethic give Hedge to allow him to efficiently find
30
120742
4334
에틱이 헤지에게 어떤 조언을 해서
02:05
and power a stable palindromic stack?
31
125076
3051
안정적인 회문형 구조를 알아내고 유지하도록 하게 할까요?
02:08
Pause now to figure it out for yourself.
32
128127
9970
잠시 멈추고 스스로 해결해보세요.
02:18
Examples of palindromes include ANNA, RACECAR, and MADAM IM ADAM.
33
138097
5461
예로는 ANNA, RACECAR, MADAM IM ADAM가 있습니다.
02:23
Counting the number of times a given letter appears in a palindrome
34
143558
3730
각각의 알파벳의 수를 세보면
02:27
will reveal a helpful pattern.
35
147288
2532
힌트가 되는 패턴을 알 수 있습니다.
02:29
Pause now to figure it out for yourself.
36
149820
4831
잠시 멈추고 스스로 해결해보세요.
02:34
Let’s first look at a naïve solution to this problem.
37
154651
3490
일단 단순한 해결법을 살펴봅니다.
02:38
A naïve solution is a simple, brute-force approach that isn’t optimized—
38
158141
4708
단순한 해결책은 간단하지만 비효율적인 억지스러운 접근법입니다.
02:42
but will get the job done.
39
162849
1980
하지만 해결이 되긴 합니다.
02:44
Naïve solutions are helpful ways to analyze problems,
40
164829
3491
단순한 해결책들은 문제를 분석하기에 용이한 방식이며
02:48
and work as stepping stones to better solutions.
41
168320
3434
더 좋은 해결책을 찾을 수 있는 초석이 되어줍니다.
02:51
In this case, a naïve solution is to approach a pile of blocks,
42
171754
3770
이 문제의 단순한 해결법은 블록 더미에 가서
02:55
try all the arrangements,
43
175524
1500
모든 조합을 구성한 후에
02:57
and see if one is a palindrome by reading it forward and then backwards.
44
177024
4727
그대로 혹은 역순으로 읽어보고 회문형인지 일일이 살펴보는 것입니다.
03:01
The problem with this approach
45
181751
1480
이 방식의 문제점은
03:03
is that it would take a tremendous amount of time.
46
183231
2493
시간이 너무 오래 걸린다는 점입니다.
03:05
If Hedge tried one combination every second,
47
185724
2850
헤지가 1초마다 1개의 조합을 구성한다고 가정하면,
03:08
a stack of just 10 different blocks would take him 42 days to exhaust.
48
188574
5198
10개의 블록 더미를 조합해 보는데 꼬박 42일이 걸립니다.
03:13
That’s because the total time is a function of the factorial
49
193772
3830
전체 시간은 블록 개수의
03:17
of the number of blocks there are.
50
197602
2142
계승 값과 동일하기 때문입니다.
03:19
10 blocks have over 3 million combinations.
51
199744
3600
10개의 블록으로 3백만 개 이상의 조합법이 가능합니다.
03:23
What this naïve solution shows is that we need a much faster way
52
203344
4280
이 단순한 해결책을 보니 훨씬 빠른 다른 방식으로
03:27
to tell whether a pile of blocks can form a palindrome.
53
207624
3593
회문형 여부를 판단해야 한다는 것을 알 수 있습니다.
03:31
To start, it may be intuitively clear that a pile of all different blocks
54
211217
4716
일단은, 겹치는 알파벳이 없는 블록 더미는 답이 아니라는 것을
03:35
will never form one.
55
215933
1420
본능적으로 알 수 있습니다. 왜일까요?
03:37
Why?
56
217353
790
03:38
The first and last blocks can’t be the same if there are no repeats.
57
218143
5281
첫 블록과 마지막 블록은 무조건 같은 알파벳이어야 합니다.
03:43
So when can a given sequence become a palindrome?
58
223424
5012
그렇다면 어떤 조합이 회문형 구조를 이룰까요?
03:48
One way to figure that out is to analyze a few existing palindromes.
59
228436
4480
몇몇 회문형 단어를 분석해서 알아내 봅시다.
03:52
In ANNA, there are 2 A’s and 2 N’s.
60
232916
3254
ANNA라는 단어에는 A와 N이 모두 2개씩 존재합니다.
03:56
RACECAR has 2 R’s, 2 A’s, 2 C’s, and 1 E.
61
236170
4886
RACECAR에는 R이 2개, A가 2개, C가 2개
그리고 E가 1개 존재합니다.
04:01
And MADAM IM ADAM has 4 M’s, 4 A’s, 2 D’s, and 1 I.
62
241056
6730
MADAM IM ADAM에는 M이 4개, A가 4개, D가 2개,
I가 1개 존재합니다.
04:07
The pattern here is that most of the letters occur
63
247786
3140
이 패턴으로 대부분의 알파벳이
04:10
an even number of times,
64
250926
1774
짝수 번으로 존재하며
04:12
and there’s at most 1 that occurs just once.
65
252700
3280
한 번 등장하는 알파벳은 꼭 1개라는 걸 알 수 있습니다.
04:15
Is that it?
66
255980
1110
과연 그럴까요?
04:17
What if RACECAR had 3 E’s instead of 1?
67
257090
3260
만약에 RACECAR에 E가 1개가 아닌 3개 있다면 어떨까요?
04:20
We could tack the new E’s onto the ends and still get a palindrome,
68
260350
3710
추가된 E로 양 끝에 놓아도 여전히 회문형 구조를 유지합니다.
04:24
so 3 is ok.
69
264060
1840
그러니 3개는 괜찮습니다.
04:25
But make that 3 E’s and 3 C’s, and there’s nowhere for the last C to go.
70
265900
6064
하지만 E와 C가 각각 3개씩이라면, 추가된 C는 자리할 곳이 없습니다.
04:31
So the most generalized insight is that
71
271964
2720
결과적으로 가장 일반화된 접근법은
04:34
at most one letter can appear an odd number of times,
72
274684
4096
최대 1개의 알파벳은 홀수 번으로 나올 수 있지만
04:38
but the rest have to be even.
73
278780
3066
나머지 알파벳은 짝수개여야 한다는 것입니다.
04:41
Hedge can count the letters in each stack and organize them into a dictionary,
74
281846
4314
헤지는 각각의 더미의 글자 개수를 세고 알파벳 순으로 정렬할 수 있습니다.
04:46
which is a tidy way of storing information.
75
286160
2725
정보를 저장하는 간편한 방식이죠.
04:48
A loop could then go through and count how many times odd numbers appear.
76
288885
4579
루프를 이용해 홀수가 몇 번 등장하는지 셀 수 있습니다.
04:53
If there are less than 2 odd characters, the stack can be made into a palindrome.
77
293464
5500
홀수 문자가 2개 이하라면, 이 더미는 회문형이 될 수 있습니다.
04:58
This approach is much, much faster than the naïve solution.
78
298964
3720
이 방식은 단순한 해결책보다 훨씬 더 빠릅니다.
05:02
Instead of factorial time, it takes linear time.
79
302684
3420
계승 시간이 아닌, 선형 시간이기 때문입니다.
05:06
That’s where the time increases
80
306104
1570
존재하는 블록 수에 비례해서
05:07
in proportion to the number of blocks there are.
81
307674
2710
소요 시간이 늘어나는 이유입니다.
05:10
Now write a loop for Hedge to approach the piles individually,
82
310384
3990
이제 헤지가 더미에 접근하도록 루프를 써보겠습니다.
05:14
and stop when he finds a good one, and you’ll be ready to go.
83
314374
4155
헤지가 적절한 블록을 찾으면 출발할 준비가 완료된 것입니다.
05:18
Here’s what happens:
84
318529
1389
어떤 일이 일어날지 살펴봅시다.
05:19
Hedge is fast, but there are so many piles it takes a long time.
85
319918
4046
헤지는 빠르지만, 더미가 너무 많아 시간이 오래 걸립니다.
05:23
Too long.
86
323964
1356
엄청나게 멀군요.
06:17
Ethic and Hedge are safe.
87
377897
1680
에틱과 헤지는 안전합니다.
06:19
But Octavia is not so lucky.
88
379577
2423
그러나 옥타비아는 운이 썩 좋지 못했습니다.
이 웹사이트 정보

이 사이트는 영어 학습에 유용한 YouTube 동영상을 소개합니다. 전 세계 최고의 선생님들이 가르치는 영어 수업을 보게 될 것입니다. 각 동영상 페이지에 표시되는 영어 자막을 더블 클릭하면 그곳에서 동영상이 재생됩니다. 비디오 재생에 맞춰 자막이 스크롤됩니다. 의견이나 요청이 있는 경우 이 문의 양식을 사용하여 문의하십시오.

https://forms.gle/WvT1wiN1qDtmnspy7