|
|
2️⃣ 해시 함수 적용
3️⃣ 서버에는 해시 값만 저장!
4️⃣ 로그인할 때
◈ 해시 함수의 특징
암호화는 가능하지만, 복호화(원래 값 복구)는 불가능!
입력이 같으면 결과(해시 값)도 항상 동일
입력값이 조금만 달라도 해시 값이 완전히 다름
(예)
"apple123" → aB3xY9zW0K
"apple124" → Q8ZpX7mN2T (완전히 다른 값이 나옴!)
사례3)
웹사이트 사용 : 로그인 정보, 카드번호, 검색 내용 등
웹사이트와 브라우저(구글 등) 암호화(잠금) 통해 통신
열쇠를 주고받는 구조
1) 사이트가 자물쇠를 브라우저에게 줌
- 사이트 인증 완료
2) 브라우저가 비밀 열쇠(대칭키) 만듬
- 안전하게 대화하기 위해 대칭키를 만듬
- 대칭키 = 같은 열쇠로 잠그고 여는 방식
3) 대칭키를 사이트의 자물쇠(공개키)로 잠가서 보냄
- 대칭키로 보내면 중간에 도둑이 훔칠 수 있으니까
공개키(자물쇠)로 대칭키를 잠궈서 보냄.
사이트는 (개인키)로만 열수 있음
※ 공개키는 사이트가 진짜인지 확인하고,
대칭키는 우리 대화 내용을 안전하게 지키는 역활
https://로 시작하면 이 모든 과정이 자동으로 진행되는
안전한 사이트라는 뜻
p52
1. 카이사르 암호(암호화 키=3)를 이용하여 암호화, 복호화를 해 보자.
(1) 평문을 암호화해 보자.
| 평문 | Manners Maketh Man |
| 암호문 | Pdqqhuv Pdnhwk Pdq |
(2) 암호문을 복호화하여 해석해 보자.
| 암호문 | Eh Fduhixo iru Dvvdvvlqdwru |
| 평문 | Be Careful for Assassinator |
2. 암호 기술은 오랜 시간 변화와 발전을 거듭해왔다. 카이사르 암호의 한계와 비즈네르 암호에 대해 알아보자.
(1)
| 카이사르 암호의 한계 | 비즈네르 암호 방식 |
| 암호문의 문자는 항상 같은 평문의 문자로 대응되기 때문에, 문자의 출현 빈도를 이용해 쉽게 암호를 해독 할 수 있다. | 비즈네르 암호는 각 알파벳을 저마다 다른 규칙으로 치환하는 다중 단일 문자 암호이다. 이때 각 알파벳을 바꾸는 규칙을 '암호화 키' 라고 한다. |
다중단일문자 암호 : 여러개의 치환 규칙을 번갈아 가며 사용하는 방식
예) 한 가지 치환 규칙이 아니라 여러 개의 규칙(키)을 순환하며 적용
같은 문자가 여러 번 등장해도 다른 문자로 치환됨
(2) 평문과 암호화 키 'BAG'을 사용하여 비즈네르 암호문을 만들어 보자.
평문
| H | E | L | L | O | W | O | R | L | D |
암호화 키
| B | A | G | B | A | G | B | A | G | B |
이동 수
| 1 | 0 | 6 | 1 | 0 | 6 | 1 | 0 | 6 | 1 |
암호문
| I | E | R | M | O | C | P | R | R | E |
프로그램 맛보기(코드)
비즈네르 암호 참고 사이트
http://ko.wikipedia.org/wiki/비즈네르_암호
p53
2. 암호화 키가 '학용품'인 숫자판에서 평문의 자음과 모음의 위치를 찾고, 찾은 위치의 가로줄과 세로줄의 숫자를 차례로 적어
숫자 암호문을 만들어 보자.
| 암호문 | ㅈ ㅓ ㅁ ㅅ ㅣ ㅁ ㅅ ㅣ ㄱ ㅏ ㄴ ㄱ ㅛ ㅁ ㅜ ㄴ o ㅏ ㅍ |
| 79 94 75 77 55 11 13 24 71 92 57 56 38 29 98 26 78 33 19 |
p54
빅데이터 개념과 분석
https://www.itworld.co.kr/news/282445
p55
1 바이트(Byte) = 8 비트(bit)
1 키로바이트(Kilo Byte) = 1024 바이트
1 메가바이트(Mega Byte) = 1024 키로바이트
1 기가바이트(Giga Byte) = 1024 메가바이트
1 테라바이트(Tera Byte) = 1024 기가바이트
◈ 정형 데이터 : 구조가 명확하고 정해진 형식을 가진 데이터
(예) 주로 표 형태로 저장되며, 데이터의 각 항목이 정해진 규칙에 맞춰있음
◈ 비정형 데이터 : 구조가 없는 데이터로 일정한 형식이나 규칙이 없음
(예) 텍스트, 이미지, 오디오, 비디오 등
◈ 가변성 : 동일한 데이터가 서로 다른 맥락에서 다른 의미를 가질 수 있기 때문에
맥락(앞뒤 문구, 분위기 등)에 대한 이해를 가지고 분석해야 한다.
(예) ● 소셜 미디어 데이터 : 사람들의 감정이나 트렌드가 시간에 따라 변화
● 실시간 센서 데이터 : 온도, 습도, 압력 등 시간과 장소에 따라 변동 가능
● 온라인 쇼핑 트렌드 : 할인 이벤트, 특정 상품의 인기에 따라 상품이 시시각각 변화
● 금융 시장 : 주식 가격, 환율, 금리 등 경제 상황이나 뉴스에 따라 급격하게 변화
◈ 시각화 : 사용자 친화적인 시각적 기능을 통해 빅데이터의 잠재력이 활용될 수 있어야 한다.
(예) ● 그래프, 차트, 지도, 이미지 등으로 데이터를 보기 쉽게 만듬 (직관적으로 이해)
● 시각적으로 표현하면 핵심 정보가 한 눈에 보임
● 이상값 탐지 : 데이터 오류나 특이점을 쉽게 찾을 수 있음
CSV 형식이란, 데이터를 Comma-Separated Values, 즉 콤마( , )로 구분한 값들의 형식
CSV (Comma-Separated Values)는 데이터를 행(row)과 열(column)**로 구성된 표 형태로 저장하면서,
각 열의 값을 쉼표( , )로 구분한 텍스트 파일 형식
예)
이름, 나이, 포지션, 국적
김민재, 29, 수비수, 대한민국
손흥민, 33, 공격수, 대한민국
이강인, 24, 미드필더, 대한민국
첫 번째 줄은 열의 이름(헤더)
이후 줄은 각각 하나의 데이터 행(row)
각 열의 값은 쉼표( , )로 구분
p56
◈ 부산시 도시침수 통합정보시스템
https://safecity.busan.go.kr/#/
→ 비가 많이 올 때 도시가 얼마나 침수될 가능성이 있는지 미리 예측하고,
실시간으로 위험 단계를 알려주는 시스템
◈ 차세대 지능형 교통 시스템
→ 자동차, 도로 상태, 사고 정보 등 다양한 데이터를 실시간으로 모으고 분석해서, 도로와 자동차가 정보를 주고받으며
사고를 예방하는 시스템을 운영!
1️⃣ 데이터 실시간 수집
도로에 설치된 센서, 카메라, 교통 신호 등이 실시간으로 교통 정보, 도로 상태, 차량 위치 등을 수집
2️⃣ 교통 시설과 차량이 소통
차량에 장착된 통신 장치가 도로의 교통 신호나 도로 상황을 실시간으로 받아보고,
반대로 차량 상태를 도로의 교차로에 전송해 서로 소통
3️⃣ 사고 예방 효과
교차로에서 사고를 예측하고 자동차 속도 조절이나 경고 시스템을 통해 사고를 미리 예방
예를 들어, 신호등이 빨간불일 때 차량에 경고를 보내 사고를 예방하는 방식
◈ 맞춤형 정밀 의료 서비스
→ 병원에서는 환자의 다양한 건강 정보를 모으고 분석해서, 개인에게 딱 맞는 치료 방법을 찾는 스마트 의료 시스템을 사용
1️⃣ 다양한 건강 데이터 수집
병원에서는 유전자 정보, 혈액 검사 결과, 건강 기록, 생활 습관 등 여러 가지 데이터를 수집
이를 통해 환자에 대한 종합적인 건강 상태를 파악
2️⃣ 데이터를 분석하여 맞춤형 진단
수집된 데이터를 AI와 빅데이터 분석 기술을 통해 분석하여, 개인에 최적화된 진단을 제공
예 : 특정 질병에 대한 발병 확률이나 유전자 변이를 바탕으로 진단.
3️⃣ 맞춤형 치료로 효과 극대화
분석된 데이터를 바탕으로 개인에게 가장 적합한 치료 방법을 제시하고, 약물 치료, 생활 습관 개선 등을 통해
치료 효과를 최대화
예 : 특정 약물이 개인에게 더 효과적일 것이라는 맞춤형 처방을 받을 수 있음.
◈ 국민 건강 알림 서비스
→ 국민건강 알림 서비스는 건강과 관련된 여러 정보를 모아서, 지역별 질병 위험도를 알려주는 서비스
1️⃣ 여러 기관에서 건강 관련 데이터 수집
정부, 병원, 건강 관리 기관 등에서 수집된 질병 발생 정보, 날씨 데이터, 환경 정보 등을 기반으로 데이터를 실시간으로 모음.
2️⃣ 데이터를 분석해서 위험도 예측
수집된 데이터를 AI나 빅데이터 분석을 통해 분석하여, 특정 질병이 유행할 확률과 위험도를 예측함
3️⃣ 사용자에게 건강 알림 제공
분석 결과를 바탕으로 사용자에게 맞춤형 알림을 제공해줍니다. 예를 들어, "현재 지역에 독감 유행 경고" 또는
"이 지역에서는 코로나19가 급증 중" 같은 알림을 실시간으로 받게 됨
◈ 음악 스트리밍 업체
→ 스트리밍은 인터넷을 통해 실시간으로 데이터를 전송하고 재생하는 방식
예 : 음악, 영화, 게임 등을 다운로드하지 않고 바로 재생할 수 있게 해주는 기술
유튜브에서 영상을 바로 보는 것.
🎶 어떻게 음악을 추천할까?
음악 스트리밍 업체는 사용자가 듣는 음악 데이터를 분석해서 내 취향에 딱 맞는 노래를 추천해줘요!
◈ 📊 분석하는 데이터 종류
1️⃣ 운동할 때 듣는 음악 → 신나는 노래 추천! 🏃♂️💨
2️⃣ 공부할 때 듣는 음악 → 집중할 수 있는 조용한 음악 추천! 📚🎼
3️⃣ 날씨에 따라 다른 음악 → 비 오는 날엔 감성적인 노래 ☔🎶
4️⃣ 내가 자주 듣는 노래 스타일 → 비슷한 장르의 노래 더 추천! 🎸🎤
5️⃣ 시간대에 따라 다른 음악 → 아침엔 기분 좋은 음악 🌅, 밤엔 잔잔한 음악 🌙
6️⃣ 다른 사람들의 취향 반영 → 나와 비슷한 음악을 듣는 사람들이 좋아하는 곡 추천!
◈ 신용 카드
→ 신용카드와 빅데이터! 스마트한 맞춤 서비스!
"어떻게 신용카드가 나한테 필요한 할인 쿠폰을 주고, 카드 도용도 막을까?"
바로 빅데이터를 활용하기 때문!
◈ 맞춤형 할인 쿠폰 제공 🎁
신용카드 회사는 내가 어디서, 어떤 물건을 자주 사는지 분석해서 나에게 딱 맞는 할인 쿠폰을 보내줌!
✅ 예
✔ 카페를 자주 가는 사람 → "스타벅스 20% 할인 쿠폰!" ☕
✔ 운동을 좋아하는 사람 → "스포츠 브랜드 10% 할인 쿠폰!" 🏋♂️
✔ 온라인 쇼핑을 자주 하는 사람 → "네이버 쇼핑 5,000원 할인 쿠폰!" 🛒
p57
공공 데이터 포털
| 분야 | 활용 사례 | 활용 데이터 |
| 법률 | 형량 검색기 | 헌법재판소_법령 정보 서비스 |
| 재난안전 | 재난안전정보 제공 솔루션 구축 | 한국환경공단_대기오염정보, 기상청_동네예보, 기상특보 조회 서비스 |
| 교육 | Study in Korea - 외국인 대상 대학정보 제공 | 한국대학교육협의회_대학알리미 대학 기본정보 한국대학교육협의회_대학 및 전문대학정보 |
| 교육 | Unifo(대학교 정보 검색) | 한국대학교육협의회 대학 정보 공시 학생 현황, 한국대학교교육협의회_대학알리미 재정 현황 |
오픈 API : 누구나 자유롭게 사용할 수 있도록 공개된 API (응용 프로그램 인터페이스)
p58
데이터 분석 사례(PDF)
다양한 데이터 수집 사이트의 예
● 공공 데이터 포털 : 공공 기관의 데이터를 공유한다.
● 국가 통계 포털 : 국내외 통계 데이터를 공유한다.
● 캐글 : 국외 AI 경진 대회 사이트로서 데이터 분석을 위한 데이터를 공유한다.
● 데이콘 : 국내 AI 경진 대회 사이트로서 데이트 분석을 위한 데이터를 공유한다.
● 지표누리 : 통계청에서 관리, 운영하는 5종이 지표 체계를 공유한다.
p59
이상치 처리(PDF)
[데이터 수집 사이트] 기상청 기상자료 개발 포털
https://data.kma.go.kr/cmmn/main.do
p60
✔ 선그래프: 시간에 따른 기온의 변화나 꽃의 개화일을 선으로 연결해서 변화하는 모습을 보여줌
✔ 막대그래프: 각 시점에 어떤 변화가 있었는지 막대로 비교할 수 있음
✔ 영역형 차트: 선그래프처럼 변화를 보여주면서, 그 아래의 영역을 색칠해 두면 변화를 더 잘 볼 수 있음
✔ 버블 차트 → 원(버블) 크기가 중요한 비교 차트
✔ 히스토그램 → 숫자 데이터를 범위별로 나눈 막대 차트
✔ 산점도 → 두 숫자 간의 관계를 점(●)으로 보는 차트
📊 히트맵(Heatmap)
색깔을 이용해 데이터를 표현하는 그래프!
강한 값은 밝은 색으로, 약한 값은 어두운 색으로 나타내서 데이터의 차이를 쉽게 확인할 수 있음.
☁️ 워드 클라우드(Word Cloud)
글자의 크기로 중요도를 표현하는 그래프!
자주 등장하는 단어나 중요한 단어일수록 글자의 크기가 커지고, 덜 중요한 단어는 작게 표시됨
🕷 방사형 차트(Spider Chart, Radar Chart)
여러 항목을 한 번에 비교할 수 있는 거미줄 모양의 차트!
여러 가지 변수를 방사형 축에 놓고 각 항목을 연결해서 한눈에 여러 요소의 차이점을 비교할 수 있음
📌 히트맵 : 색깔로 데이터를 보여주는 차트.
워드 클라우드: 글자 크기로 중요도를 나타내는 차트.
방사형 차트 : 여러 항목을 한 번에 비교할 수 있는 차트.
p61
[프리미엄 리포트] AI·자율주행·암호화폐...미처 몰랐던 탄소 배출
https://m.dongascience.com/news.php?idx=58795
p62
코답
p63
코답으로 분석하기(PDF)
코답
p64
해양 온난화 현황 분석하기(PDF)
기상청 종합 기후 변화 감시 정보
http://www.climate.go.kr/home/09_monitoring
p66
3) 국내 해역별 연평균 해양 열용량 변화
● 해양 열용량은 동해, 남해, 서해순으로 높으며, 동해와 서해의 해양 열용량은 증가하고 있는 추세이다.
● 동해의 해양 열용량이 가장 큰 폭으로 증가하고 있으며, 변동 폭도 가장 크다.
p67
지표누리 : 우리나라 지표를 통계, 그래프 등으로 제공하고 있다.
온실가스 배출량, 기온 추이 등을 찾아 실습 결과와 같이 비교해 볼 수 있다.
※ 지표누리에서 기온 추이를 찾아 해수면 온도와의 연관성을 비교하거나,
이산화탄소뿐만 아니라 지구 온난화에 영향을 주는 다른 온실 가스 배출량 추이를 비교해 보는 등
문제 해결에 필요한 데이ㅌ를 검색, 수집해 볼 수 있다.
p69
지속가능발전포털
https://ncsd.go.kr/example?content=2
p70
2. 그래프는 1970년부터 2022년까지의 명태, 도루묵, 꽁치, 멸치, 고등어 어획량 변화이다. 그래프를 해석해 보고,
2016년 2020년 멸치와 고등어의 어획량이 줄어든 이유를 찾아보자. 또한 이와 같은 어획량 변화 데이터는
어디서 수집할 수 있을지 조사해 보자.
| 데이터 수집 | 국가통계포털 - 어업별 품종별 통계데이터 |
| 그래프 해석 | 난류성 고등어, 멸치의 어획량은 증가하고 한류성 어종인 명태, 도루묵, 꽁치의 어획량은 급격히 떨어지거나 잡히지 않고 있다. 2016년 남해와 서해의 이상 고수온의 영향으로 멸치 어획량이 떨어졌고, 2020년 고등어는 금어기로 어업이 중지되어 어획량이 떨어졌다. |
3. 다음 사례를 읽고 빅데이터 분석과 활용에서 발생되는 문제점을 찾고, 이를 해결할 수 있는 방안들을 토의해 보자.
사례1)
| 문제점 | 프라이버시 및 개인 정보 자기 결정권 침해 여부 |
| 해결 방안 | 수집 정보를 미리 공개하고, 사전에 동의를 얻어 데이터를 수집한다. 또한, 개인의 요청에 따라 정보 활용을 중단, 삭제할 수 있어야 한다. |
사례2)
| 문제점 | 단순한 두 속성 간의 상관관계를 원인과 결과를 나타내는 인과 관계로 확대 해석 |
| 해결 방안 | 상관 관계와 인과관계를 구분할 줄 알고, 영향을 미치는 다른 요인이 있는지 확인한다. 섣불리 결론을 내리지 않는다. |
🔸 상관관계 (Correlation)
두 변수 사이에 어떤 관련성(연관성)이 있다는 것을 의미.
한쪽이 변할 때 다른 쪽도 같이 변하는 경향이 있음.
하지만! 한 변수가 다른 변수를 원인으로 만들었다는 뜻은 아님!
예: 아이스크림 판매량이 늘수록 익사 사고도 늘어난다.
👉 둘 다 여름이라는 공통된 원인 때문에 생긴 현상일 뿐,
아이스크림이 익사 사고의 원인은 아님
🔸 인과관계 (Causation)
하나의 사건이 다른 사건의 원인이 되는 것
A가 B를 일으킨다, 즉 원인과 결과의 관계가 성립
예: 불을 붙이면 연기가 난다.
불이 원인, 연기가 결과.
✅ 상관관계는 함께 움직이는 관계,
인과관계는 하나가 다른 하나를 직접 변화시키는 관계.
사례3)
| 문제점 | 데이터 속성 하나가 다중 의미를 가져 해석이 달라짐 (신용 카드 결제자는 구매 주체와 결제 주체 두 가지 정보를 포함함.) |
| 해결 방안 | 다중 의미를 갖는 요소를 분리하고 구분한다. |
p78
놀이공원에서의 즐거운 하루
p83
| 불필요한 요소 | 필수 요소 |
| ● 자전거 도로 등 | ● 목적지를 경유하는 버스 |
| ● 버스 색깔 | ● 출발지 : 집의 위치(버스 정류장 기준) |
| ● 도로의 교통량 | ● 도착지 : 학교의 위치(버스 정류장 기준) |
| ● 도로의 종류(어린이 보호 구역, 일반 도로, 고속 도로) | ● 경유지 : 출발지와 도착지 사이에 거쳐 가는 버스 정류장 |
p85
◈ 최초의 지하철 노선도와 해리 백의 지하철 노선도의 차이
● 실제 지리 정보를 삭제하였다.
● 역과 역 사이의 간격을 모두 같게 처리하였다.
● 지하철 선로를 수직이나 수평으로 만들었다.
◈ 해리 백의 지하철 노선도가 최초의 지하철 노선도보다 편리한 이유
● 사람들이 실제로 알고자 하는 출발역, 도착역 등의 정보만 제공하여 가독성을 높였다.
추상화 (Abstraction)
핵심 개념: 복잡한 현실에서 중요한 부분만 골라내는 과정
목적: 불필요한 세부사항을 제거하고, 중요한 요소에 집중하기 위함
예시: 자동차를 생각할 때, 사용자는 엔진 내부 구조보다 '가속', '브레이크' 같은 기능에만 관심을 가짐. 이게 바로 추상화.
추상화는 '무엇이 중요한가?'에 대한 판단입니다.
모델링 (Modeling)
핵심 개념: 현실 세계를 이해하거나 설명하기 위한 구조화된 표현
목적: 어떤 대상이나 현상을 이해, 분석, 예측하기 위해 형태를 만드는 것
예시: 날씨 예측 모델, 건물의 3D 설계도, 시스템의 데이터 흐름도 등
모델링은 '중요하다고 추상화한 것을 표현하는 방법'
🔄 관계 정리
추상화는 모델링의 전 단계
→ "무엇이 중요한가?"를 정한 뒤, 그걸 어떻게 표현할지 결정하는 게 모델링
상황 예시: "지하철 시스템"
1. 추상화 (Abstraction)
현실: 지하철에는 수많은 요소가 존재합니다. (전기 시스템, 운전석 장치, 직원 업무, 각종 센서, 레일 구조 등)
추상화는 중요한 것만 뽑아냄
역
노선
열차
운행 시간
승객 흐름
→ 이렇게 중요한 요소만 골라서 단순화한 것이 추상화
2. 모델링 (Modeling)
추상화된 요소(역, 노선, 시간 등)를 가지고 실제 표현을 함
지도처럼 생긴 노선도
시간표
시뮬레이션 시스템
→ 추상화한 내용을 시각적·논리적으로 표현한 거죠.
p86
1. 표를 이용해 메뉴에 포함된 알레르기 유발 물질을 표시해보자.
2. 모든 메뉴에 포함된 알레르기 물질은? 우유, 밀
3. 땅콩, 돼지고기, 조개류에 알레르기가 있는 사람이 먹을 수 있는 음식은 무엇일까?
구슬아이스크림, 추로스
p87
활동3) 그림은 놀이공원 지도의 일부이다. 놀이공원에서 성진이가 롤러코스터를 타고 내려왔을 때 매직쇼 공연 시간이 임박해서 이벤트 홀로 빨리 이동해야 한다. 롤러코스터에서 이벤트 홀까지 가는 최단 거리를 구해 보자.
| 롤러코스터에서 이벤트 홀까지의 경로 | 거리 |
| 롤러코스터 - 간식 코너 - 이벤트 홀 | 2 + 4 = 6 |
| 롤러코스터 - 간식 코너 - 분수 광장 - 이벤트 홀 | 2 + 1 + 3 = 6 |
| 롤러코스터 - 분수 광장 - 이벤트홀 | 2 + 3 = 5 |
| 롤러코스터 - 분수 광장 - 급류 타기 - 이벤트 홀 | 2 + 1 + 1 = 4 |
p88
(1) 문제의 핵심 요소인 '좌표'로 A 마을에 불이 번지는 과정을 트리 형태로 표현해 보자.
(2) 화재가 발생한 뒤 2시간이 지났을 때, 불이 번진 칸의 수를 구해보자.
● 0시간 : (3, 3) 지점
● 1시간 : (3, 2), (3, 4) 지점
● 2시간 : (3, 1), (4, 2), (2, 4), (4, 4) 지점
→ 따라서 화재가 발생한 지 2시간이 지난 시점에서 불이 번진 칸은 총 7칸이다.
(3) 화재가 A 마을 전체로 번지는 데 걸리는 시간을 구해 보자.
(3, 3) 지점부터 트리의 말단 노드인 (1, 3) 지점까지 연결된 간선의 수가 6개이므로,
6시간 뒤에 화재가 온 마을을 덮친다는 것을 알 수 있다.
p89
커리어넷
https://www.career.go.kr/cloud/w/main/home
p91
2. 6명의 친구 관계를 보고, 친구 관계의 합이 가장 작은 사람을 찾아보자.
[단계 1] 문제 분석
(1) 목표 상태 : 친구 관계의 합이 가장 작은 사람을 찾는다.
(2) 문제의 요구 사항은 무엇인가?
→ 6명의 친구 관계에서 친구 관계의 합이 가장 작은 사람을 찾는다.
(3) 문제의 제약 조건은 무엇인가?
→ 친구 관계를 계산할 때 한 번 거친 사람은 다시 거칠 수 없다.
[단계 2] 문제 분해
해결할 수 있는 작은 단위의 문제로 나누어 보자.
→ (1) 6명의 친구 관계를 그래프로 표현하기
(2) 6명의 모든 친구 쌍에 대한 친구 단계를 구해서 표로 표현하기
(3) 개인별 친구 관계의 합 구하기
(4) 친구 관계의 합이 가장 작은 사람 찾기
[단계 3] 문제 해결에 필요한 핵심 요소를 찾아보자.
→ 6명의 친구 관계, 개인별 친구 관계, 친구 관계의 합 등
[단계 4] 주어진 친구 관계를 그래프와 표로 표현해 보자.
p95
활동5
퍼즐 게임
p96
p102
(활동9)
(2) 더 빨리 알아맞히기 위해 어떤 방법을 쓸 수 있을까?
: 남은 수의 범위를 효과적으로 줄이기 위한 방법을 찾아야 한다.
예를 들면, 남은 수의 범위를 절반씩 줄이도록 매 단계마다 가운데 위치한 수를 답한다.
p103
(활동10)
https://www.cs.usfca.edu/~galles/visualization/Search.html
p104
(활동11)
다음 7개의 데이터가 가나다순으로 정렬되어 있다. 순차 탐색, 이진 탐색을 할 때 질문에 답해 보자.
귤 딸기 망고 바나나 사과 키위 포도
| 질문 | 순차 탐색 | 이진 탐색 |
| 가장 빨리 찾는 데이터는? | 귤 | 바나나 |
| 가장 늦게 찾는 데이터는? | 포도 | 바나나보다 왼쪽인 경우 : 귤, 망고 바나나보다 오른쪽인 경우 : 사과, 포도 |
p106
2. 내가 생각하는 최적이 이동 동선은 무엇인가? 그렇게 하기 위해서는 어떤 작업이 필요한가?
택배 기사가 위치한 1번 위치에서 8번 위치까지 이동하며 택배를 배달하는 동선이 이동 거리가 가장 적어
효율적이다. 이를 위해서는 배달 전에 택배를 건물 번호순으로 오름차순 정렬하는 작업이 필요하다.
3. 건물 번호에 따라 택배 순서를 오름차순으로 정렬해 보자
(1) 버블 정렬
| 8 | 3 | 7 | 4 | 1 | |
| 단계 1 | 3 | 7 | 4 | 1 | 8 |
| 단계 2 | 3 | 4 | 1 | 7 | 8 |
| 단계 3 | 3 | 1 | 4 | 7 | 8 |
| 단계 4 | 1 | 3 | 4 | 7 | 8 |
(2) 선택 정렬
| 8 | 3 | 7 | 4 | 1 | |
| 단계 1 | 1 | 3 | 7 | 4 | 8 |
| 단계 2 | 1 | 3 | 7 | 4 | 8 |
| 단계 3 | 1 | 3 | 4 | 7 | 8 |
| 단계 4 | 1 | 3 | 4 | 7 | 8 |
p107
3.
p109 파이선 설치
(설치시 주의사항)
Add_Python 을 먼저 체크한 후, Install Now 를 눌러 설치합니다.
p110
예약어 : 예약어 (또는 키워드)란 파이썬에서 이미 문법적인 용도로 사용되고 있기 때문에 변수명 등의 식별자로 사용하면 안 되는 단어들을 말한다. 파이썬에서 이미 사용되고 있는(용도가 예약된) 단어들을 지칭하며 이미 문법적인 용도로 사용되기 때문에 변수명 등의 식별자로 사용하면 안 된다.
예 : if, for, while 등의 예약어는 조건문, 반복문 등의 구문을 구성하는데 사용된다.
(만약 예약어를 변수나 함수의 이름으로 사용하려고 하면, 문법 오류가 발생한다)
주요 예약어
● and, or , not : 논리 연산자
● del : 변수 삭제
● for, while : 반복문
● if, elif, else : 조건문
● import : 모듈 가져옥
● in, is : 비교 연산자
● None : 값이 없음을 나타내는 특별한 상수
● pass : 아무런 동작을 하지 않는 구문
● return : 함수의 결과 반환
● True, False : 불린 값
p111
( ) (소)괄호
{ } 중괄호
[ ] 대괄호
[ 1 : n ] → 1부터 n-1까지
[ 6 : 11 ] → 6부터 10까지
[ : 5 ] → 0부터 4까지
[ 11 : ] → 11부터 끝까지
p112
활동 13
1. 키(m)와 몸무게(kg)를 변수에 저장하고 체질량 지수를 계산하는 프로그램을 완성해 보자.
01 h = 1.7
02 w = 60
03 bmi = w / (h * h)
04 print(bmi)
2. 1번에서 구한 체질량 지수(bmi)가 정상 범위에 속하는지 그 결과를 True나 False로 출력하는
명령문을 완성해 보자. 단, 정상 범위는 체질량 지수가 18.5 이상 23 미만인 경우이다
print ( 18.5 <= bmi <23 )
p113
활동 14
01 a, b = 135, 88
02 print("수축기 혈압", a, "이완기 혈압", b)
03 print("정상 혈압:", a < 120 and b < 80)
04 print("주의 혈압:", 120<=a<130 and b<80 )
05 print("고혈압 전 단계:", 130<=a<140 or 80 <= b<90 )
06 print("고혈압:", a>=140 or b>=90 )
p115
활동 16
01 adult = 50000
02 child = 30000
03 n = int(input("대인: "))
04 m = int(input("소인: "))
05 print( adult*n + child*m )
p126
활동19
01 age = int(input("나이를 입력하세요."))
02 if age <= 18 :
03 print("입장권 가격은 40,000원입니다.")
04 else :
05 print("입장권 가격은 50,000원입니다.")
p128
활동20
01 heigth = int(input("키: "))
02 if height < 100 :
03 print("탑승 불가")
04 elif height < 130 :
05 print("보호자 동행 시 탑승 가능")
06 elif height < 195 :
07 print("탑승 가능")
08 else :
09 print("탑승 불가")
...
|
|