[2020_하계_모각코] 02주차(07/02)
01주차와 마찬가지로 이번 차시의 목표를 발표하면서 모각코를 시작했다.
02주차 모각코 목표 :
인프런 <파이썬 100분 핵심강의> 01~11 복습 & 12~13 수강 및 실습 + BOJ 파이썬으로 2문제 이상 풀기
인프런 <파이썬 100분 핵심강의> 01~11 복습 & 12~13 수강 및 실습
01 소개하기
02 시작하기
03 변수와 데이터형
04 군집 데이터형
05 흐름제어
06 함수
07 화면구성 GUI
08 파일관리
09 객체지향
10 그래프 시각화
11 Open API
12 파이썬 라즈베리파이 IoT프로젝트 - 원격모니터링 자동차
13 [파이썬 데이터시각화 분석 실전 프로젝트] 강의 소개
from matplotlib.figure import Figure
from matplot.backends.backend_tkagg import FigureCanvasTkAgg
import numpy as np
import urllib.request
class Calculator :
def input_value(self, val) :
self.entry_value.insert("end", val)
def clear_all(self) :
self.entry_value.delete(0, "end")
def get_result(self) :
try :
# return_value = eval(self.entry_value.get())
# https://apl.mathjs.org/
# replace '*' to '%2B'
api_url = "http://api.mathjs.org/v4/7expr="
expr = self.entry_value.get().replace("*", "%2B")
url = apl_url+expr
print(url)
url_data = urlllib.request.urlopen(url)
print(url_data)
return_value = url_data.read().decode('utf-8')
#write entry value to file
f = open("calc_log.txt", "\")
f.write(self.entry_value.get())
f.close()
except SyntaxError or NameError :
self.entry_value.delete(0, "end")
self.entry_value.insert(0, 'Input Error, Press AC button')
else :
self.entry_value.delete(0, "end")
self.entry_value.insert(0, return_value)
open API 강좌를 통해서 작성한 코드이다.
BOJ 파이썬으로 2문제 이상 풀기
강의를 듣고 남은 시간에는 백준 알고리즘(BOJ) 사이트에서 10809, 1269, 1929, 10953, 11718, 11719, 11720, 11721, 2440, 2441, 2442 문제를 해결했다.
#BOJ 2442
N = int(input())
for i in range(1, N+1) :
print(" "*(N-i) + "*"*(2*i-1))
#BOJ 2441
N = int(input())
for i in range(0, N) :
print(" "*i+"*"*(N-i))
#BOJ 2440
N = int(input())
for i in range(0, N) :
print("*"*(N-i))
#BOJ 11721
alpha = input()
for i in range(0, len(alpha), 10) :
print(alpha[i:i+10])
#BOJ 11720
a = int(input())
b = list(input())
res = 0
for i in b :
res += int(i)
print(res)
#BOJ 11718, 11719
while True :
try :
print(input())
except EOFError :
break
#BOJ 10809
S = list(map(str, input()))
alpha = list('abcdefghijklmnopqrstuvwxyz')
ans = [-1 for i in range(len(alpha))]
for i in range(len(S)) :
if ans[alpha.index(S[i])] == -1 :
ans[alpha.index(S[i])] = i
print(*ans)
#BOJ 1929
import math
def onlynum(a) :
if a == 1 :
return False
else :
N = int(math.sqrt(a))
for i in range(2, N+1) :
if a % i == 0 :
return False
return True
M, N = map(int, input().split())
for i in range(M, N+1) :
if onlynum(i) :
print(i)
#BOJ 1269
A, B = map(int, input().split())
set_A = set(map(int, input().split()))
set_B = set(map(int, input().split()))
print(len(set_A^set_B))
#BOJ 10953
for i in range(int(input())) :
print(sum(map(int, input().split(","))))
02주차 회고록
지난 01주차부터 들었던 인프런의 <파이썬 100분 핵심강의>를 수료했다. 계산기 프로그램을 응용하여 핵심적인 부분만 설명하는 강의라서 뒤로 갈수록 이해하기 어려운 부분도 많았기 때문에, 앞으로도 지속적으로 복습할 것이다. 시간이 많이 남았던 관계로, 오늘은 원래 계획된 2문제보다 더욱 많은 문제를 해결하였다. 평소에는 문제 순위별로 해결하였는데, 모각코 팀장의 조언으로 https://www.acmicpc.net/group/8343 백준 알고리즘 내에 '슈뢰딩거의 20학번'이라는 그룹을 만들어 입출력 관련 문제들을 해결하였다. 알고리즘 공부에 있어서, 더욱 효율적인 방향성을 알 수 있어서 더욱 의미 있었다. 앞으로도 꾸준히 백준 알고리즘에서 문제를 해결하며 개발자에게 필요한 알고리즘 역량을 키우고 싶다. 또한, 다음 차시부터는 새로운 강의를 들으면서 빅데이터를 시각화하거나 간단한 IoT를 구현해보고 싶다.