파이썬 교육은 이홍주 강사님이 맡으셨다.
나긋나긋하고 여유롭게 진행하시는게 특징이었다.
점심 이후는...이건 근데 식곤증이 심한 내 탓인듯...
안 졸려고 밥 먹고 엄청 움직였는데..
input() : 기본적으로 사용자 입력값이 str
요즘은 sys 모듈을 코테에서 쓰는 곳도 많이 보인다.
이쪽으로 습관을 들이려고 노력중인데 SWEA같은 곳은 안 쓰더라?
왔다갔다 좀 불편한데 어쩔 수 없지.
한 두줄 입력받는 건 괜찮은데, 반복문으로 여러줄 입력 시 input()의 시간초과 발생 가능성 문제 때문.
import sys
a = int(sys.stdin.readline())
a,b,c, = map(int, sys.stdin.readline().split())
data = list(map(int,sys.stdin.readline().split())
n줄은 그냥 n을 따로 입력 받고 for문 돌리면 된다.
data = [sys.stdin.readline().strip() for _ in range(n)]
+++
lst = list(str(data))
이리저리 쓰고 추가사항 있으면 계속 추가할 것이다.
+++
a이상 b미만의 구간이 N개의 갯수를 구하는 것이 직관적이라고 다익스트라가 증명
a,b = b,a 가 파이썬에서 가능한 이유 : (b,a)의 튜플이 되는데 대입할때 튜플이 다시 풀려서 각각 들어감
교육에 맞춘 답
print('네 정수의 최댓값을 구합니다.')
a = int(input('정수 a의 값을 입력하세요.: '))
b = int(input('정수 b의 값을 입력하세요.: '))
c = int(input('정수 c의 값을 입력하세요.: '))
d = int(input('정수 d의 값을 입력하세요.: '))
maximum = a
if b > maximum:
maximum = b
if c > maximum:
maximum = c
if d > maximum:
maximum = d
print(f'최대값은 {maximum}입니다.')
보자마자 생각한 내 풀이 (섭섭할까봐 for문도 넣어줌)
def my_max(lst):
n_max = max(lst)
return n_max
def my_max2(lst):
n_max = 0
for num in lst:
if num > n_max:
n_max = num
return n_max
lst = list(map(int,input("숫자사이를 띄워주세요.(네 개의 정수): ").split()))
answer = my_max(lst)
answer2 = my_max2(lst)
print(f'가장 큰 정수는 {answer}')
print(f'가장 큰 정수는 {answer2}')
def waterPay(company,amount):
if company == 'A':
result = amount*100
else:
if amount <= 50:
result = amount*150
else:
result = 150*50 + (amount - 50)*75
return result
company = input("A or B? : ")
amount = int(input("How much usage? : "))
answer = waterPay(company,amount)
print(f"수도 요금은 {answer}원입니다.")
사실 귀찮아서 예외처리를 안 함..ㅎㅎ;
한다면 elif company == 'B': 하고 else: 에서 처리
print('a부터 b까지 정수의 합을 구합니다.')
a = int(input('정수 a를 입력하세요.: '))
b = int(input('정수 b를 입력하세요.: '))
if a > b:
a, b = b, a
sum = 0
for i in range(a, b):
print(f'{i} + ', end='')
sum +=i
print(f'{b} = ', end='')
print(sum+b)
area = int(input('직사각형의 넓이를 입력하세요.: '))
for i in range(1, area + 1):
# if (area % i) : continue
print(f'{i} x {area // i}')
def electricPay(amount):
if amount < 100 :
pay = 410 + amount * 60.7 #100미만이면 여기서 계산 끝남
elif amount<= 200 :
pay = 910 + 100 * 60.7 + (amount-100)*125.9
else:
pay = 1600 + 100 * 60.7 + 100*125.9 + (amount-200)*187.9
pay = int(pay + (pay*0.1) + (pay * 0.037))
return pay
amount = int(input())
print(f'전기요금은 {electricPay(amount)}원 입니다.')
num = int(input())
for _ in range(num//2):
print("+",end="")
print("-",end="")
if num % 2:
print("+",end="")
for num in range(1,13):
if num == 8: continue
print(num,end=" ")
num = int(input())
flag = 0
for root in range(2,num+1):
for pwr in range(2,6): # 1<pwr<6 조건
result = root ** pwr #거듭제곱
if result == num :
print(f"{int(root)} ** {pwr} = {num}")
flag = 1
if flag == 0:
print("결과 없음")
def GCD(a, b):
if a > b:
a,b = b,a
while b :
a,b = b,a%b
return a
a,b = map(int,input().split())
print(GCD(a,b))
def solution(a,b):
answer = (a*b)//GCD(a,b) # 위 함수 활용
return answer
num = int(input()) #리스트처럼 써먹기
ori_num = num
cnt = 0 #사이클 횟수
while True:
a = num//10 #몫을 구함 num=98이면 여긴 9
b = num%10 # 나머지를 구함, 여긴 8
c = (a+b)%10 # 9+8을 10으로 나눈 나머지
# 17%10 = 7
num = b*10+c #새로운 숫자 만들기 (87)
cnt += 1 #새숫자 만들어져서 count
if ori_num == num: # 원래 수로 돌아오면 break
print(cnt)
break
제곱수는 약수의 개수가 홀수
def solution(left, right):
answer = 0
cnt = 0
for num in range(left,right+1):
if int(num**0.5) == num**0.5: #제곱수니까 -
answer -= num
else: #아니니까 +
answer += num
return answer
data = input('숫자로 이루어진 문자열을 입력하세요. ')
lst = list(map(int,data))
result = 0
for num in lst:
if num == 0 or num == 1:
result += num
else:
if result == 0 :
result += num
else:
result *= num
print(result)
아...기호도 추가해야했다...몰랐네...
data = input('숫자로 이루어진 문자열을 입력하세요. ')
result = int(data[0])
print(result,end=" ")
for i in range(1,len(data)):
num = int(data[i])
if num <= 1 ot result <=1:
result += num
print("+ "+str(num),end=" ")
else:
result *= num
print("x "+str(num),end=" ")
print('= '+str(result))
num = input()
idx = int(len(num))//2
lst = list(map(int,num[:idx]))
lst2 = list(map(int,num[idx:]))
if sum(lst) == sum(lst2):
print("LUCKY")
else:
print("READY")
def solution(n):
answer = n**(1/2)
if answer%1 == 0:
answer = (answer+1)**2
else:
answer = -1
return answer