#6020
#one2ye code
a,b = input().split('-')
print(a,b,sep="")
#20s code
num = input()
re_num = num.replace("-","")
print(re_num)
#6023
#one2ye code
s = input().split(":")
print(s[1])
#20s code
h,m,s = input().split(':')
print(m)
#6042
#one2ye code
a = float(input())
print(format(a, ".2f"))
#20s code
a = float(input())
print(round(a,2))
#6066
a,b,c = input().split()
a = int(a)
b = int(b)
c = int(c)
d = [a,b,c]
for i in d: # 반복문을 사용해서 코드 줄이기!
if i%2==0:
print("even")
else:
print("odd")
# 원래 코드!
# if a%2==0:
# print("even")
# else:
# print("odd")
# if b%2==0:
# print("even")
# else:
# print("odd")
# if c%2==0:
# print("even")
# else:
# print("odd")
* 지난 번에 공부했던 반복문을 사용해서 코드를 줄이고 싶어서 시도해봤다!!ㅎㅎㅎ
#6067
n = int(input())
s = 0
for i in range(1000):
s+=i
if s>=n:
print(i)
break
* for문 사용에 익숙하지 않아서 엄청 오래 걸렸던 문제이다!!ㅠㅠ
알게된 사실 1) sum을 넣어 줄 s변수는 for문 밖에 전역변수로 초기화해서 선언해주어야 한다.
알게된 사실 2) i도 변수처럼 사용이 가능하다...
알게된 사실 3) 우리가 입력받는 n값은 사실상 이미 숫자들이 더해진 합이기 때문에 s에 계속 더해가야 할 값은 n이 아니라 0부터 하나씩 증가하면서 돌아가는 i값이다.
알게된 사실 4) 마지막에 더한 정수를 출력하는 것이기 때문에 if문에 걸려서 마지막으로 돌아가고 중단되어 버린 i값을 출력해주면 된다.
#6083
r,g,b = input().split()
r = int(r)
g = int(g)
b = int(b)
count = 0
for i in range(0,r):
for j in range(0,g):
for k in range(0,b):
print(i, j, k)
count+=1
print(count)
* 처음에 어떻게 접근해야 하는지 감도 오지 않아서 많이 헤맸는데, 천천히 디버깅을 해보면서 i,j,k의 값이 어떻게 변하고 출력되는지를 확인했다. 다중 for문을 제대로 이해하는 계기가 되었다!!
# 다중 for문 연습하기
#20s code
a="*"
for i in range(1,6):
print(i*a)
#one2ye code
for i in range(6):
print(i*"*")
# 그냥 for문 한 개만 사용해서 출력해본 것!
# 다중 for문 사용해보기!!
for i in range(5):
for j in range(i+1):
print('*', end="")
print('')
ㅠㅠ거의 다 알았는데 i보다 j가 하나씩 더 증가해서 출력해야된다는 부분을 range에 표현하지 못했다!ㅠㅠ 그래서 결국 답을 보고 이해했다.
for i in range(5,0,-1):
for j in range(i):
print('*', end="")
print('')
* for문의 range에 대해서 제대로 이해하고 있지 못해서 비슷한 방식으로도 접근을 못했다. 역순으로 출력되게 하려면 '-'부호를 써야하나만 고민했었는데 range() 범위 안에 range(5,0,-1)은 5부터 0초과까지 -1씩 줄여나가라는 뜻이라는 것을 알게되었다. range(1,6,2) 는 1부터 6미만까지 2씩 증가시켜가면서 출력하라는 뜻!
C언어에서는 for(i=0; i<6; i++)라고 쓰는 것과 동일한 의미이다.
#6084
h,b,c,s = input().split()
h = int(h)
b = int(b)
c = int(c)
s = int(s)
if (0<h<=48000) and ((0<b<=32) and (b%8==0)) and (0<c<=5) and (0<s<=6000):
result = float(h*b*c*s/8/1024/1024)
a = format((result), ".1f")
print(a, end=" ")
print("MB")
# 요건 왜 안될까? 엄청 고민했던 코드!!
#print((format(float(h*b*c*s/8/1024/1024))), ".1f"
#6088~#6090
수열 문제!!
#6088
a, d, n = input().split()
a = int(a)
d = int(d)
n = int(n)
count = 0
for i in range(n-1):
count += 1
a = a + d
if count == n:
break
print(a)
#6089
a,r,n = input().split()
a = int(a)
r = int(r)
n = int(n)
count = 0
if (0<=a,r,n<=10):
for i in range(n-1):
count += 1
a = a * r
if count == n:
break
print(a)
#6090
a,m,d,n = input().split()
a = int(a)
m = int(m)
d = int(d)
n = int(n)
count = 0
if (-50<=a,m,d<=50) and (0<n<=10):
for i in range(n-1):
count += 1
a = a*m+d
if count == n:
break
print(a)
* 첫 번째 문제를 풀 때 엄청 오래 걸리고 고민을 많이 했어서 답을 보려고 했지만, 한 번 더 생각해보고 해낸 문제라서 뿌듯해서 기록한다!!!
* count를 어떤 방식으로 하는게 좋을지와 입력 값 a부터 count 되게 해야하는데 계속 그 다음 숫자부터 적용이 돼서 range 범위를 정하는데 애를 먹었던 문제이다.
#6096
2차원 배열에 익숙하지 않아서 엄청 고생했던 문제!
# 이중 for문을 통해 19x19 크기의 0들이 담겨있는 d라는 list 생성.
d = [[0 for j in range(20)] for i in range(20)] #list comprehension
# 입력된 값을 d에 넣어준다.
for i in range(19):
a = input().split()
for j in range(19):
d[i+1][j+1] = int(a[j]) #index는 0부터 시작하기 때문에 1씩 더해준다!
# 몇 번 바꿀지 횟수 입력받기
n = int(input())
# 위에서 입력받은 횟수만큼(n번) x,y값을 입력받기.
for i in range(n):
x,y = input().split()
for j in range(1,20):
if d[j][int(y)]==0:
d[j][int(y)]=1
else:
d[j][int(y)]=0
if d[int(x)][j]==0:
d[int(x)][j]=1
else:
d[int(x)][j]=0
# 가로 세로 줄의 값을 (1->0, 0->1)로 바꿔준 다음 출력하기.
for i in range(1,20):
for j in range(1,20):
print(d[i][j], end=' ')
print()
끄으으읕!
'Programming Language > Python' 카테고리의 다른 글
Python - 최대 재귀 한도 깊이로 인한 Runtime Error 해결 방법 (0) | 2022.06.22 |
---|---|
Python - 데크(deque)의 개념 (0) | 2022.05.27 |
Python - 문법 공부 정리(9~10) (0) | 2021.07.03 |
Python - 문법 공부 정리(5~8) (0) | 2021.07.02 |
Python - 문법 공부 정리(1~4) (0) | 2021.07.01 |