아직 몇문제 안풀어봤지만, 풀때마다 매번 내가 얼마나 부족한지 느낀당,,,ㅎ
근데 내가 자꾸 미루길래,, 일주일에 한 두번 정도 블로그에 업로드하기로 결정
(진짜 난 뼈속까지 J 형이 틀림없당 ㅎㅅㅎ)
일단 이번에는 입출력 위주로 풀어봄!
근데 매번 런타임 에러 나서 속상,,,, 헤헤
1. 기본 입출력 문제: 줄바꿈 유무
inputs = input()
A, B = inputs.split()
print(int(A)+int(B))
A = input()
B = input()
print(int(A)+int(B))
2. 입력받은 그대로 출력
while True:
try:
print(input())
except EOFError:
break
사실 이 부분은 너무 생소했당 ,,,
try except 개념 자체는 알고 있었는데 python code로 만나는게 안익숙해서 그런가봥
그래서 그냥 다른분들 코드를 들여다 봤당
for i in range(100):
inputs = input()
if len(inputs)>0 and len(inputs)<=100 and inputs[i]!=" ":
print(inputs)
elif len(inputs)==0:
break
이게 내가 처음으로 만든 코드인데,
그래도 이젠 이 코드가 왜 잘못되었는지는 알겠당
3. 별 출력하기
num = int(input())
output = ""
for i in range(num):
output +="*"
print(output)
별 문제는 옛날에 웹파이썬 프로그래밍 수업 들을 때 (무려 2년 전)
퀴즈로 한번 만났던 앤데 또 만났다 근데 그만큼 클래식하고 군더더기 없는 문제인듯
이 문제는 사실 오른쪽 정렬로 출력하기 (ex ‘%10s’ % ‘* ‘) 으로 될 줄 알았는데 런타임 에러가 나버렸당 히히
근데 평소였으면 그냥 뚜껑 출력하고 아래 출력했을 텐데
이번엔 안그러고 싶었거든,,, 반복문 하나로 만들고 싶었는데
num = int(input())
output = []
# step 1) make long empty output
for i in range(num):
output.append(" ")
# step 2) print stars
for i in range(1,2*num):
if (i>num): count = 2*num-i
else: count = i
for j in range(1,count+1):
temp[-j] = '*'
print(''.join(temp))
왜 이게 안되지 생각하다 python은 기본적으로 pass by reference인걸 까먹었음을 알아냈당
num = int(input())
# step 1) print stars of top
for i in range(1,num+1):
print(" "*(num-i)+"*"*i)
# step 2) print starts of bottom
for j in range(1,num):
print(" "*(j)+"*"*(num-j))
이건 결국 생각해낸 답지,,,ㅎ
시간복잡도를 생각하면 그래도 뚜껑 따로 아래 따로 만드는게 나을 듯!
그리고 list를 이용하기 보다는 그냥 python 이 간결함을 고려하여
이렇게 출력해도 될거같당 히히
num = int(input())
for i in range(num):
print(" "*(num-1-i)+ "*"*(i) + "*"+ "*"*(i)) # print(" "*(num-1-i)+ "*"*(2*i+1))
num = int(input())
for i in range(1,num+1):
output = ""
for j in range(2*i):
if j%2 ==1:
output+="*"
else:
output+=" "
print(" "*(num-i)+ output)
이건 출력 형식이 잘못되었다는데 왜그러지
10991은 진짜 다양한 풀이가 많아서 넘모 신기했당 히히