반응형
*POSTECH 청년 AI · Big Data 아카데미(https://pabi.smartlearn.io/)의
'Computational Thinking (컴퓨팅 사고) Ⅰ' 코스 강의를 듣고 정리한 글입니다
*모든 이미지의 출처는 https://pabi.smartlearn.io/ 입니다
4-2
여러곱 - 계산 자료의 '그리고'
1. 접속사 ‘그리고’
1) 계산 자료의 종류를 ‘그리고’로 엮은 경우
- 생활기록부에서 이름 그리고 성적을 뽑아낸다
- 지도에서 출발 도시, 그리고 도착 도시를 골라서 거리를 잰다
2) 계산 자료 자체를 ‘그리고’로 엮은 경우(계산 자료들을 모두 포함한 새로운 계산 자료를 만들게 됨)
→ 아래 문장에서 밑줄 친 부분을, 해당 문장에서의 하나의 계산 자료로 취급함
- 첫째 생활기록부에는 이름 홍길동 그리고 성적 85점이 적혀 있다
- 국어 그리고 영어 그리고 수학은 공통 수강생이 있다
* 프로그래밍 언어에서 ‘그리고’
- 접속사 대신 특유의 문법을 씀
- C언어에서는 ‘구조체’라 부르고, Python/Haskell/Scala 언어에서는 ‘여러곱’이라 부름
2. Python 언어에서의 여러곱
- 괄호 사이에 계산 자료 나열하고 쉼표로 분리: (계산 자료1, 계산 자료2, …, 계산 자료n)
- 각 계산 자료가 여러곱의 원소가 됨
- 예시
- 사람 언어 → ”정수 1729 그리고 단어 Hello 그리고 참”
- Python 언어 → (1729, ‘Hello’, True)
1) 여러곱의 특징
(1) 여러곱 = 프로그램
- 예시1: (1729, ‘Hello’, True) 입력 후 프로그램을 실행하면, (1729, ‘Hello’, True) 그대로 출력됨
- 예시2: (1729, ) [원소가 1개인 여러곱] 입력 후 프로그램을 실행하면, (1729, ) 그대로 출력됨
- 예시3: ( ) [원소가 없는 여러곱] 입력 후 프로그램을 실행하면, ( ) 그대로 출력됨
(2) 더 큰 여러곱을 만들 때 쓸 수 있음
- 사람 언어 → Python 언어
- ”정수 1729 그리고 단어 Hello 그리고 참” → (1729, ‘Hello’, True)
- ”정수 1729 그리고 단어 Hello, 그리고 참” → ((1729, ‘Hello’), True)
- ”정수 1729, 그리고 단어 Hello, 그리고 참” → (1729, (‘Hello’, True))
(3) 여러곱으로 표현할 수 있는 예
- 주소 - 행정 구역 단위별로 엮음
- 예: 서울시 중구 명동 → (’서울시’, ‘중구’, ‘명동’)
- 생년월일 - 년, 월, 일 표현하는 정수를 엮음
- 예: 1981년 9월 18일 → (1981, 9, 18)
- 거리 - 단위와 거리 값을 따로 엮음
- 예: 40km → (’km’, 40) 또는 (’m’, 40000)
* 여러곱의 특수한 형태?
- 계산 자료 하나로 엮은 여러곱: (계산 자료, ) → 첫 번째 원소만 있지만, ,(쉼표)를 써서 여러곱임을 명시해야 함 [쉼표 안 쓰면 그냥 ‘계산 자료’가 되며, 원래 ‘계산 자료’와 차이가 없어짐]
- 원소가 아예 없는 여러곱: ( ) → 괄호 사이에 아무것도 없음 [특별한 용도로만 사용]
4-3
여러합 - 계산 자료의 '또는'
1. 접속사 ‘또는’
1) 계산 자료의 종류를 ‘또는’으로 엮은 경우
- 생활기록부를 찾으려면 이름 또는 생년월일이 필요하다
→ 이름이 3개 있고 생년월일이 5가지가 있다면, 8개의 원소를 가지는 집합을 나타냄
⇒ 이름 집합과 생년월일 집합의 합집합에서 원소가 하나 필요하다는 의미 - 킬로미터 거리 또는 미터 거리가 나온다
→ 킬로미터 거리가 3개 있고 미터 거리가 3개 있다면, 6개의 원소를 가지는 집합을 나타냄
⇒ 킬로미터 거리 집합과 미터 거리 집합의 합집합에서 원소가 하나 필요하다는 의미
2) 계산 자료 자체를 ‘또는’으로 엮은 경우(계산 자료 집합이 새로 정의됨)
- 시험은 월요일 또는 화요일 또는 수요일에 시작한다
→ 계산 자료 3개로 이루어진 집합에 해당함 ⇒ 요일들의 합집합에서 원소가 하나 필요하다는 의미
* 프로그래밍 언어에서 ‘또는’
- 프로그래밍 언어마다 다름
- C언어에서는 ‘열거형’이라고 부르고, Haskell/Scala 언어에서는 ‘여러합’이라 부름
- Python 언어에서는 ‘여러합’이라는 개념이 없음 → ‘여러합 흉내내기’를 해야 함
2. Python 언어에서 여러합 흉내내기
(단, 원소 종류를 나타낼 때 미리 정한 기본 자료만 써야 함)
- 종류와 내용 쌍으로 이루어진 여러곱으로 여러합 원소를 표현 → 여러합 원소 = (종류, 내용)
- 내용이 없으면 종류만으로 이루어진 여러곱으로 표현 → 여러합 원소 = (종류, )
- 킬로미터 또는 미터 거리
- 월요일 또는 화요일 또는 수요일
반응형
'컴퓨터공학 공부 > SmartLearn - PABI 강의' 카테고리의 다른 글
컴퓨팅 사고 II: WEEK 5-1 (2) | 2023.01.13 |
---|---|
컴퓨팅 사고 I: WEEK 3-3, 4-1 (0) | 2022.12.16 |
1. 컴퓨팅 사고 - 스크래치: 기초 (0) | 2022.10.23 |
1. 컴퓨팅 사고 - 알고리즘 (0) | 2022.10.14 |
1. 컴퓨팅 사고 - 2진법, 정보의 표현 (0) | 2022.10.09 |