오늘은 다 끝내보도록 하자.
📖66번
입력
세 정수 a, b, c 가 공백을 두고 입력된다.
0 <= a, b, c <= +2147483647
출력
입력된 순서대로 짝(even)/홀(odd)을 줄을 바꿔 출력한다.
num = list(map(int, input().split()))
for i in range(3):
if (num[i]%2==0): print('even')
else: print('odd')
📖67번
입력
정수 1개가 입력된다.
-2147483648 ~ +2147483647, 단 0은 입력되지 않는다.
출력
입력된 정수에 대해
첫 줄에 minus 나 plus 를 출력하고,
두 번째 줄에 odd 나 even 을 출력한다.
num = int(input())
if num>0: print('plus')
else: print('minus')
if num%2==0: print('even')
else: print('odd')
📖68번
입력
정수(0 ~ 100) 1개가 입력된다.
출력
평가 결과를 출력한다.
평가 기준
점수 범위 : 평가
90 ~ 100 : A
70 ~ 89 : B
40 ~ 69 : C
0 ~ 39 : D
로 평가되어야 한다.
a = int(input())
if(a>=90): print('A')
elif(a>=70): print('B')
elif(a>=40): print('C')
else: print('D')
📖69번
입력
영문자 1개가 입력된다.
(A, B, C, D 등의 한 문자가 입력된다.)
출력
평가내용에 따라 다른 내용이 출력된다.
A : best!!!
B : good!!
C : run!
D : slowly~
나머지 문자들 : what?
ja = input()
if ja=='A': print('best!!!')
elif ja=='B': print('good!!')
elif ja=='C': print('run!')
elif ja=='D': print('slowly~')
else: print('what?')
📖70번
입력
월을 의미하는 1개의 정수가 입력된다.(1 ~ 12)
출력
계절 이름을 출력한다.
월이 입력될 때 계절 이름이 출력되도록 해보자.
예
월 : 계절 이름
12, 1, 2 : winter
3, 4, 5 : spring
6, 7, 8 : summer
9, 10, 11 : fall
m = int(input())
if m==(12 or 1 or 2): print('winter')
elif m==(3 or 4 or 5): print('spring')
elif m==(6 or 7 or 8): print('summner')
else: print('fall')
📖71번
입력
정수가 순서대로 입력된다.
-2147483648 ~ +2147483647, 단 개수는 알 수 없다.
출력
입력된 정수를 줄을 바꿔 하나씩 출력하는데, 0이 입력되면 종료한다.
(0은 출력하지 않는다.)
list = input().split()
for x in list:
if int(x) == 0:
break;
print(x)
📖72번
입력
첫 줄에 정수의 개수 n이 입력되고,
두 번째 줄에 n개의 정수가 공백을 두고 입력된다.
-2147483648 ~ +2147483647, 단 n의 최대 개수는 알 수 없다.
출력
n개의 정수를 한 개씩 줄을 바꿔 출력한다.
n = int(input())
a = input().split()
for i in a:
print(i)
근데 사실 파이썬에서는 이 문제에서 굳이 첫번째 줄에 n이 입력 안되어도 상관없다.
📖73번
입력
정수가 순서대로 입력된다.
-2147483648 ~ +2147483647, 단 개수는 알 수 없다.
출력
입력된 정수를 줄을 바꿔 하나씩 출력하는데, 0이 입력되면 종료한다.
(0은 출력하지 않는다.)
list = input().split()
for x in list:
if int(x) == 0:
break;
print(x)
71번 문제랑 뭐가 다른건지 모르겠다.
📖74번
입력
정수 1개가 입력된다.
(1 ~ 100)
출력
1씩 줄이면서 한 줄에 하나씩 1이 될 때까지 출력한다.
n = int(input())
for i in range(n):
print(n)
n-=1
📖75번
입력
정수 1개가 입력된다.
(1 ~ 100)
출력
1씩 줄이면서 한 줄에 하나씩 0이 될 때까지 출력한다.
n = int(input())
for i in range(n):
n-=1
print(n)
📖76번
입력
영문자 1개가 입력된다.
(a ~ z)
출력
a부터 입력한 문자까지 순서대로 공백을 두고 출력한다.
n = input()
for i in range(ord(n)-ord('a')+1):
print(chr(ord('a')+i), end=' ')
📖77번
입력
정수 1개가 입력된다.
(0 ~ 100)
출력
0부터 그 수까지 줄을 바꿔 한 개씩 출력한다.
n = int(input())
for i in range(n+1):
print(i)
📖78번
입력
정수 1개가 입력된다.
(0 ~ 100)
출력
1부터 입력된 수까지 짝수의 합을 출력한다.
n = int(input())
hap=0
for i in range(n+1):
if(i % 2)==0: hap+=i
print(hap)
📖79번
입력
문자들이 1개씩 계속해서 입력된다.
출력
'q'가 입력될 때까지 입력된 문자를 줄을 바꿔 한 줄씩 출력한다.
data = input().split()
for i in data:
print(i)
if(i=='q'): break
📖80번
입력
정수 1개가 입력된다.
출력
1, 2, 3, 4, 5 ... 를 순서대로 계속 더해 합을 만들어가다가,
입력된 정수와 같거나 커졌을 때, 마지막에 더한 정수를 출력한다.
n = int(input())
hap = 0
i = 0
while(1):
i+=1
hap+=i
if(hap>=n):
print(i)
break
📖81번
입력
주사위 2개의 면의 개수 n, m이 공백을 두고 입력된다.
단, n, m은 10이하의 자연수
출력
나올 수 있는 주사위의 숫자를 한 세트씩 줄을 바꿔 모두 출력한다.
첫 번째 수는 n, 두 번째 수는 m으로 고정해 출력하도록 한다.
n, m = map(int, input().split())
for i in range(1, n+1):
for j in range(1, m+1):
print(i, j)
📖83번
입력
10 보다 작은 정수 1개가 입력된다.
(1 ~ 9)
출력
1 부터 그 수까지 순서대로 공백을 두고 수를 출력하는데,
3 또는 6 또는 9인 경우 그 수 대신 영문 대문자 X 를 출력한다.
n = int(input())
for i in range(1,n+1):
if(i%3==0): print('X')
else: print(i)
📖84번
입력
빨녹파(r, g, b) 각 빛의 강약에 따른 가짓수(0 ~ 128))가 공백을 사이에 두고 입력된다.
예를 들어, 3 3 3 은 각 색깔 빛에 대해서 그 강약에 따라 0~2까지 3가지의 색이 있음을 의미한다.
출력
만들 수 있는 rgb 색의 정보를 오름차순(계단을 올라가는 순, 12345... abcde..., 가나다라마...)으로
줄을 바꿔 모두 출력하고, 마지막에 그 개수를 출력한다.
r, g, b = map(int, input().split())
cnt=0
for i in range(r):
for j in range(g):
for k in range(b):
print(i,j,k)
cnt+=1
print(cnt)
📖85번
입력
h, b, c, s 가 공백을 두고 입력된다.
h는 48,000이하, b는 32이하(단, 8의배수), c는 5이하, s는 6,000이하의 자연수이다.
출력
필요한 저장 공간을 MB 단위로 바꾸어 출력한다.
단, 소수점 둘째 자리에서 반올림해 첫째 자리까지 출력하고 MB를 공백을 두고 출력한다.
h, b, c, s = map(int, input().split())
print(format((h*b*c*s/8/1024/1024),'0.1f'), 'MB')
📖86번
입력
w, h, b 가 공백을 두고 입력된다.
단, w, h는 모두 정수이고 1~1024 이다. b는 40이하의 4의 배수이다.
출력
필요한 저장 공간을 MB 단위로 바꾸어 출력한다.
소수점 이하 셋째 자리에서 반올림해 둘째 자리까지 출력한 뒤 MB를 출력한다.
W,H,B = map(int, input().split())
print('%.2f MB' % (W*H*B/8/1024/1024))
📖87번
입력
언제까지 합을 계산할 지, 정수 1개를 입력받는다.
단, 입력되는 자연수는 100,000,000이하이다.
출력
1, 2, 3, 4, 5 ... 순서대로 계속 더해가다가, 그 합이 입력된 정수보다 커지거나 같아지는 경우,
그때까지의 합을 출력한다.
n = int(input())
a=0
b=1
while a<n :
a+=b
b+=1
print(a)
📖88번
입력
정수 1개를 입력받는다.
(1 ~ 100)
출력
1부터 입력한 정수보다 작거나 같을 때까지 1씩 증가시켜 출력하되
3의 배수는 출력하지 않는다.
n=int(input())
for i in range(1, n+1):
if (i%3==0):
continue
print(i, end=' ')
📖89번
입력
시작 값(a), 등차의 값(d), 몇 번째 수 인지를 의미하는 정수(n)가
공백을 두고 입력된다.(모두 0 ~ 100)
출력
n번째 수를 출력한다.
a, d, n = map(int, input().split())
print(a + d*(n-1))
📖90번
입력
시작 값(a), 등비의 값(r), 몇 번째 인지를 나타내는 정수(n)가
공백을 두고 입력된다.(모두 0 ~ 10)
출력
n번째 수를 출력한다.
a, r, n = map(int, input().split())
print(a*pow(r,n-1))
📖91번
입력
시작 값(a), 곱할 값(m), 더할 값(d), 몇 번째 인지를 나타내는 정수(n)가
공백을 두고 입력된다.(a, m, d는 -50 ~ +50, n은 10이하의 자연수)
출력
n번째 수를 출력한다.
a,m,d,n=map(int, input().split())
for i in range(n-1) :
a = a*m + d
print(a)
📖92번
입력
같은 날 동시에 가입한 인원 3명이 규칙적으로 방문하는,
방문 주기가 공백을 두고 입력된다. (단, 입력값은 100이하의 자연수이다.)
출력
3명이 다시 모두 함께 방문해 문제를 풀어보는 날(동시 가입/등업 후 며칠 후?)을 출력한다.
a,b,c=map(int, input().split())
d=1
while (d%a!=0 or d%b!=0 or d%c!=0) :
d+=1
print(d)
📖93번
입력
첫 번째 줄에 출석 번호를 부른 횟수인 정수 n이 입력된다. (1 ~ 10000)
두 번째 줄에는 무작위로 부른 n개의 번호(1 ~ 23)가 공백을 두고 순서대로 입력된다.
출력
1번부터 번호가 불린 횟수를 순서대로 공백으로 구분하여 한 줄로 출력한다.
n=int(input())
b=map(int, input().split())
arr=[]
for i in range(24) :
arr.append(0)
for i in range(n) :
arr[b[i]]+=1
for i in range(1, 24) :
print(arr[i], end=' ')
📖95번
입력
번호를 부른 횟수(n, 1 ~ 10000)가 첫 줄에 입력된다.
n개의 랜덤 번호(k, 1 ~ 23)가 두 번째 줄에 공백을 사이에 두고 순서대로 입력된다.
출력
출석을 부른 번호 중에 가장 빠른 번호를 1개만 출력한다.
n = int(input())
data = map(int, input().split())
print(min(data))
시간초과가 뜰 줄 알았는데 안 뜬다.
📖98번
입력
바둑알이 깔려 있는 상황이 19 * 19 크기의 정수값으로 입력된다.
십자 뒤집기 횟수(n)가 입력된다.
십자 뒤집기 좌표가 횟수(n) 만큼 입력된다. 단, n은 10이하의 자연수이다.
출력
십자 뒤집기 결과를 출력한다.
where = []
for i in range(19):
where.append([])
for j in range(19):
where[i].append(0)
for i in range(19):
where[i] = list(map(int, input().split()))
n = int(input())
for i in range(n):
x, y = map(int, input().split())
for j in range(19):
if where[x-1][j] == 0:
where[x-1][j] = 1
else:
where[x-1][j] = 0
if where[j][y-1] == 0:
where[j][y-1] = 1
else:
where[j][y-1] = 0
for i in range(19):
for j in range(19):
print(where[i][j], end=" ")
print()
개인적으로 조금 복잡했다. (중간에 변수를 틀려서 꼬여서 다시 풀었다.
📖99번
입력
10*10 크기의 미로 상자의 구조와 먹이의 위치가 입력된다.
출력
성실한 개미가 이동한 경로를 9로 표시해 출력한다.
꽤 복잡하기는 했다. (그냥 복잡 그 이상 이하도 아니었다.)
arr = [[0 for col in range(10)] for row in range(10)]
where=[]
for i in range(10):
arr[i] = list(map(int, input().split()))
if 2 in arr[i]: goto = [arr[i].index(2), i]
goto_x, goto_y = goto
now_x=1
now_y=1
now=[now_x, now_y]
while True:
if (arr[now_x][now_y] == 0):
arr[now_x][now_y] = 9
elif (arr[now_x][now_y] == 2):
arr[now_x][now_y] = 9
break
if ((arr[now_x][now_y+1] == 1 and arr[now_x+1][now_y] == 1)):
break
if (arr[now_x][now_y+1] != 1): now_y = now_y + 1
elif (arr[now_x+1][now_y] != 1): now_x = now_x + 1
for i in range(10):
for j in range(10):
print(arr[i][j], end='\n')
print()
문제를 풀 때 방향을 잘못 잡아서 BFS, DFS, 다익스트라 등 다양한 알고리즘을 생각하였다. 단순하게 생각하자 ㅜㅜ
'스터디 그룹 > ProjectH4C' 카테고리의 다른 글
ProjectH4C 1개월 3,4주 과제 생활코딩 - HTML (2) (0) | 2021.02.13 |
---|---|
ProjectH4C 1개월 3,4주 과제 생활코딩 - HTML (1) (0) | 2021.02.09 |
ProjectH4C 1개월 3,4주 과제 (코드업 41~65) (0) | 2021.02.07 |
ProjectH4C 1개월 3,4주 과제 (코드업 21~40) (0) | 2021.02.04 |
ProjectH4C 1개월 3,4주 과제 (코드업 11~20) (0) | 2021.02.03 |