알고리즘 0주차(사전 평가시험)
1주차에 조를 짜기위한 사전 평가 시험을 치뤘다.
사전 평가 때 치뤘던 문제를 복습겸 분석해보려한다.
1. 다음 코드에서 while 문의 수행이 끝났을 때 count 변수와 mystery변수의 값은 각각 얼마인가?
간단한 문제이다. count = 0, mystery = 1인 상태에서 문제를 풀면된다.
반복문 while문에서 count < 5가 될 때까지 반복한다.
count < 5일 경우 Count++를 해준 뒤, mysery * count를 해주면된다.
그럼 0일경우부터 차례대로 값을 넣어보자.

count = 5가 될경우 while문을 빠져나오므로
최종적으로 count = 5, mystery = 120을 저장하고 출력함을 알 수 있다.
------------------------------------------------------------------------------------------------------
2. 31명의 용의자가 한줄로 서있다. 이 중 1명이 범인이다. 모든 용의자는 누구인지 알고 있습니다. 한 용의자를 선택하여 "범인은 누구입니까?"라고 물을 때 다음 중 하나로 대답한다.
1. 범인은 나다.
2. 범인은 나보다 왼쪽에 있다.
3. 범인은 나보다 오른쪽에잇다.
이 경우 탐정이 범인을 찾기 위해 물어봐야 하는 최소 횟수와 최대횟수는 각각 얼마인가?

사실 이 문제는 약간의 오류가 있지만 교수가 의도한 해설에 따르면 위와 같다.
최솟값은 당연히 1이고 최댓값은 31명의 범인의 가운데 사람을 기준으로 나눴을 때 범인을 찾는다.
if/else 조건문을 돌려서 범인이 없는경우 또 범인들중 반으로 나눠서 범인을 찾는다.
위의 과정을 거쳐서 최댓값을구하면 최솟값 = 1 최댓값 = 4가 나온다.
------------------------------------------------------------------------------------------------------
3. 다음 함수(메소드)를 fun(3)로 호출할 때 출력되는 결과를 적어라.
fun(3)의 결과값을 구하는 문제이다.
fun 메소드의 조건문을 보면 n < 1일경우 B를 출력하며,
n > 1 일 경우 fun(n - 1)한 뒤 R을 출력한다.

if문을 수행한 뒤, else문을 수행하므로 결과값은 "BRRR" 이 됨을 알 수 있다.
------------------------------------------------------------------------------------------------------
4. 다음 코드의 출력 결과를 적어라.

i =0 -> x
i =1 -> 0
i = 2 -> 001
i = 3 -> 001012
최종적으로 001012가됨을 알 수 있다.