에게해 스터디원들과 함께하는 CS 간단 발표 및 독후감🐈
[1일1로그 100일 완성 IT지식] 18번 '알고리즘과 초콜릿 케이크 레시피'
사실 초콜릿 케이크 레시피는 저자의 어그로 제목이다.
알고리즘은 데이터를 명시하고(선언) 수행할 작업을 자세히 설명하고 결과값을 도출하는데,
계란을 '반숙'으로 구우려면 반숙의 정의부터 불 세기와 몇 분동안 구울지를 명확히 제시하지는 않으니까
잠깐 생각해봐도 ,(쉼표) 나 ;(세미콜론) 하나만 달라져도 에러를 띄워버리는 알고리즘과 유사하지는 않아보인다.
그래서 알고리즘은 이렇다~ 설명하고 19번 '반에서 가장 키 큰 사람 찾기: 선형 알고리즘'으로 넘어간다.
- 알고리즘은 모든 가능한 상황을 다루어야 한다.
- 알고리즘은 결국 멈춰야 한다. (for 문에서 i 값을 0~10 까지 정해주듯이)
[1일1로그 100일 완성 IT지식] 19번 '반에서 가장 키 큰 사람 찾기'
우리는 반에서 가장 키 큰 사람은 그냥 둘러보면 알 수 있다.
하지만 알고리즘은 아주 명확하고 상세하게 설명해야 답을 구할 수 있다.
기본적으로는 한 명 한명 키가 몇인지 묻고, 지금까지 확인한 사람 중에 가장 키 큰 사람이 누군지 계속 체크하는 것이다.
이런식으로 모든 사람의 키를 물어보면 '가장 키 큰 사람과 그 사람의 키'를 알 수있다.
그런데 키가 같은 사람이 있으면 어떨까? 또, 추가로 모든 사람의 키 평균을 구하려면?
키가 같은 사람이 가장 클 수도 있으니 키가 같은 사람 모두의 이름을 기억하고 있어야한다. 또 키 평균을 구하려고 보니까 사람이 아무도 없으면 알고리즘은 0으로 나눠버릴거다.
이러한 모든 상황을 명확히 컴퓨터에게 알려줘야한다. 위의 상황은 저자가 '자료 구조' 장에서 자세하게 다룬다고하니 요정도로 넘어가겠습니다~
'CS 스터디' 카테고리의 다른 글
[소프트웨어] 10개 도시를 최단거리로 여행하는 법 (0) | 2022.08.04 |
---|---|
[소프트웨어] 이진 검색, 선택 정렬 vs 퀵 정렬 (0) | 2022.08.03 |
[하드웨어] 슈퍼컴퓨터부터 사물인터넷까지 (0) | 2022.08.01 |
[하드웨어] 캐시가 뭔가요? (0) | 2022.07.30 |
[하드웨어] 프로세서는 무조건 빠른 게 좋을까? (0) | 2022.07.29 |