어제 못한 재귀함수는 맨 마지막에.


8. 스크래치 블록코딩

블록코딩이라는게 있는지 처음 알았다.

초기값 False에서 스페이스바를 누르면 일단 100 움직인다.(repeat 10 * move 10)

-> bounded가 True가 아니기 때문에 1번 if문 pass

-> else로 들어가서 bounded가 True로 설정된다.

-> 스페이스바가 눌렸기 때문에 무한히 반복해야한다.

-> 다시 100 움직인다.

-> 첫번째 if문에 들어가서 다시 bounded가 False로 바뀌고, 100을 깎는다. (현재 100 -> 200 -> 100)

-> 멈춘다. (stop) / 즉, 스페이스바 한번을 누르면 100씩 늘어난다.

 

1. 맞다.

초기값 False에서 스페이스바를 누르면 일단 100 움직인다.(repeat 10 * move 10)

-> bounded가 True가 아니기 때문에 1번 if문 pass

-> else로 들어가서 bounded가 True로 설정된다.

-> 스페이스바가 눌렸기 때문에 무한히 반복해야한다.

-> 다시 100 움직인다.

-> 첫번째 if문에 들어가서 다시 bounded가 False로 바뀌고, 100을 깎는다. (현재 100 -> 200 -> 100)

-> 멈춘다. (stop) / 즉, 스페이스바 한번을 누르면 100씩 늘어난다.

False - True - False

 

2. 틀리다.

True더라도 결국 첫 if문에 들어가서 False, stop을 받기 때문에 계속 이동하지는 않는다.

 

3. 틀리다.

스페이스바를 눌러야한다.

 

4. 맞다.

첫 if문에서 False로 설정한 후에 100을 깎고 stop하기 때문이다.

 

5. 맞다.

초기값 False인 상태에서 스페이스를 누르는 시점에 당연히 bounded는 False다.


9. 의사 코드

(doctor 아님 ㅎ)

 

앞에 있으면 앞에 펴고, 뒤에 있으면 뒤에 피면 된다.

?


10. 진법 변환

0x => 이거 16진법이에요~

잘 모르겠지만 일단 찾아본다.

(진법 변환 방법)

어렴풋이 알고 있는게 맞는 방법이었다.

 

1. 11111101 = 8자리다.

128 + 64 + 32 + 16 + 8 + 4 + 0 + 1이다.

2^0 ~ 2^7까지의 합은 2^8 - 1이다.

따라서 위의 값은 256 - (1+2)다.

253이다.

 

16^2 = 2^8 = 256이다

16진법으로 나타내면 16^1 * 15 + ? 꼴로 나타나질 것이다.

256 - 16 = 240이니까,

(1^6* 16^1 ) + (13*16^0)일 것이다.

그러면, FD(15번째, 13번째)일 것이다.

0xFD가 맞다.

 

2. 14

1110 = 8 + 4 + 2

맞다.

 

3.0xB6 = 11*16^1 + 6

= 176 + 6 = 182

틀리다.

 

4. 비트 하나에 0, 1을 표시할 수 있는 것 아닌가?

틀리다고 일단 하겠다. (오늘 볼 cs50에 비트 파트가 있다.)

-> 맞는 선지였다. 비트는 0 또는 1의 값 한 개만 가지는 놈이구나.

 

5. 이건 무슨 헛소리야.


11. 논리적 이해 및 분석

 

상황판단 어서오고 ㅋㅋ

$7@6#$

= (여러개)7(2개)6(1개)(여러개)

결국 가운데에 7??6? 의 값을 가지는 애들을 찾으면 된다.

+(1개)(여러개) != (여러개) 왜냐하면 왼쪽항은 #$ = 1~? 이고 $ = 0~?이기 때문.

+ 앞에 (여러개 = 0일 수 있음) 덩어리가 있으므로 7@6#으로 시작하거나 끝나는 것도 포함이다.

 

7 두칸 6 꼴이 아닌 애들은 다 소거한다.

 

의외로 간단히 끝났다.


12. 규칙성과 알고리즘

어쩐지 ㅋㅋ

$56#$ (56?)

@2$ (??2)

$2@8 (2??8)

 

재밌네 ㅋㅋ


13. 함수 구현

 

자연수가 들어있는 배열 arr가 매개변수로 주어집니다.

배열 arr안의 숫자들 중에서 앞에 있는 숫자들부터 뒤에 중복되어 나타나는 숫자들 중복 횟수를 계산해서

배열로 return 하도록 solution 함수를 완성해주세요.

만약 중복되는 숫자가 없다면 배열에 -1을 채워서 return 하세요.

 

딱 대

아 이거 연속으로 나오는 경우를 세는게 아니라 두개 이상이면 갯수 출력해주는 거구나

 

뿌듯


7. 재귀함수

(2트)

 

draw1(5), draw2(5)를 순차적으로 시행했을 때 결과는?

 

아니 이거 봐도봐도 모르겠네

그래서 파이썬으로 구현해보기로 했다.

 

이거.. 맛냐?
ㅙ지?

정답은 !?432154321?!(!? 없애고 거꾸로) 인데..

이상하네 아무리봐도 맞는 것 같은데..


 

복사했습니다!