- 1091
시작 값(a), 곱할 값(m), 더할 값(d), 몇 번째인지를 나타내는 정수(n)가 입력될 때, n번째 수를 출력하기
a,m,d,n=input().split()
a=int(a)
m=int(m)
d=int(d)
n=int(n)
cnt=1
while True:
if cnt==n:
break
a*=m
a+=d
cnt+=1
print(a)
- 1092
같은 날 동시에 가입한 인원 3명이 규칙적으로 방문하는, 방문 주기가 공백을 두고 입력되었을 때 3명이 다시 모두 함께 방문해 문제를 풀어보는 날(동시 가입/등업 후 며칠 후?)을 출력하기
a,b,c=input().split()
a=int(a)
b=int(b)
c=int(c)
num=1
while True:
if (num%a==0)and(num%b==0)and(num%c==0):
break;
num+=1
print(num)
- 1093
출석 번호를 n번 무작위로 불렀을 때, 각 번호(1 ~ 23)가 불린 횟수를 각각 출력하기
count=int(input())
n=input().split()
number=[0 for _ in range(23)]
for i in range(count):
number[int(n[i])-1]+=1
for i in range(23):
print(number[i],end=" ")
=> list=[]는 빈 리스트를 선언한 것이다. 여기서 list=[0 for _ in range(10)]은 리스트에 10개의 0을 추가하게된다. c언어의 경우 전역변수로 int형의 배열을 선언하면 0으로 초기화되지만 파이썬은 용도에 맞게 초기화가 필요하다.
- 1094
출석 번호를 n번 무작위로 불렀을 때, 부른 번호를 거꾸로 출력하기
n=int(input())
call=input().split()
numbers=[]
for i in range(n):
numbers.append(int(call[i]))
for i in reversed(range(n)):
print(numbers[i],end=" ")
=> for문에서 reversed를 사용하면 반대 인덱스의 원소부터 출력한다.
- 1095
출석 번호를 n번 무작위로 불렀을 때, 가장 빠른 번호 출력하기
n=int(input())
call=input().split()
numbers=[]
for i in range(n):
numbers.append(int(call[i]))
min_num=999
for i in range(n):
if min_num>numbers[i]:
min_num=numbers[i]
print(min_num)
- 1096
바둑판(19 * 19)에 n개의 흰 돌을 놓는다고 할 때, n개의 흰 돌이 놓인 위치를 출력하기
map=[[0 for _ in range(20)] for _ in range(20)]
n=int(input())
for i in range(n):
x,y=input().split()
x=int(x)-1
y=int(y)-1
map[x][y]=1
for i in range(19):
for j in range(19):
print(map[i][j],end=" ")
print()
=> 2차원 리스트를 생성 후 0으로 초기화하는 방법에 대해 알게되었다.
- 1097
바둑판(19 * 19)에 흰 돌(1) 또는 검정 돌(0)이 모두 꽉 채워져 놓여있을 때, n개의 좌표를 입력받아 십(+)자 뒤집기한 결과 출력하기
a=[[0 for j in range(20)] for i in range(20)]
for k in range(19):
x=list(map(int,(input().split())))
for l in range(19):
a[k+1][l+1]=x[l]
n=int(input())
for _ in range(n):
y,x=map(int,(input().split()))
for m in range(1,20):
if a[y][m]==0:
a[y][m]=1
else:
a[y][m]=0
if a[m][x]==0:
a[m][x]=1
else:
a[m][x]=0
for y in range(1,20):
for x in range(1,20):
print(a[y][x],end=' ')
print()
=> 0으로 초기화된 2차원 배열을 선언 후 입력된 값으로 해당 배열을 채울 때 list(map(int, (input().split())))을 사용한다. 뿐만 아니라 처음부터 정수를 입력해야 할 때도 사용할 수 있다.
- 1098
격자판의 세로(h), 가로(w), 막대의 개수(n), 각 막대의 길이(l), 막대를 놓는 방향(d:가로는 0, 세로는 1)과
막대를 놓는 막대의 가장 왼쪽 또는 위쪽의 위치(x, y)가 주어질 때, 격자판을 채운 막대의 모양 출력하기
"""
첫 줄에 격자판의 세로(h), 가로(w) 가 공백을 두고 입력되고,
두 번째 줄에 놓을 수 있는 막대의 개수(n)
세 번째 줄부터 각 막대의 길이(l), 방향(d), 좌표(x, y)가 입력된다.
입력값의 정의역은 다음과 같다.
1 <= w, h <= 100
1 <= n <= 10
d = 0 or 1
1 <= x <= 100-h
1 <= y <= 100-w
"""
w,h=map(int,input().split())
n=int(input())
gameMap=[[0 for _ in range(101)] for _ in range(101)]
for i in range(n):
l,d,x,y=map(int,input().split())
if d==0:
for k in range(y,y+l):
gameMap[x][k]=1
else:
for k in range(x,x+l):
gameMap[k][y]=1
for i in range(1,w+1):
for j in range(1,h+1):
print(gameMap[i][j],end=" ")
print()
- 1099
개미는 오른쪽으로 움직이다가 벽을 만나면 아래쪽으로 움직임
먹이를 찾았거나 더 이상 움직일 수 없을 때까지 오른쪽 또는 아래쪽으로만 움직임
0: 길 1: 벽 2: 먹이
개미는 2,2에서 출발
개미가 이동한 경로를 9로 표시하여 출력하기
"""
개미는 오른쪽으로 움직이다가 벽을 만나면 아래쪽으로 움직임
먹이를 찾았거나 더 이상 움직일 수 없을 때까지 오른쪽 또는 아래쪽으로만 움직임
0: 길 1: 벽 2: 먹이
개미는 2,2에서 출발
개미가 이동한 경로를 9로 표시
"""
antMap=[[0 for _ in range(10)] for _ in range(10)]
for i in range(10):
antMap[i]=list(map(int,input().split()))
y=1
x=1
while True:
if antMap[y][x]==2:
antMap[y][x]=9
break
elif antMap[y+1][x]==1 and antMap[y][x+1]==1:
antMap[y][x]=9
break
antMap[y][x]=9
if antMap[y][x+1]==1:
y+=1
elif antMap[y+1][x]==1:
x+=1
else:
x+=1
for i in range(10):
for j in range(10):
print(antMap[i][j],end=" ")
print()
'프로그래밍 > Python' 카테고리의 다른 글
[Codeup 2차원배열연습-2] 1468 ~ 1475 (0) | 2021.01.13 |
---|---|
[Codeup 2차원배열연습-1] 1460 ~ 1467 (0) | 2021.01.11 |
[Codeup 기초100제] 1081 ~ 1090 (0) | 2021.01.09 |
[Codeup 기초100제] 1071 ~ 1080 (0) | 2021.01.09 |
[Codeup 기초100제] 1061 ~ 1070 (0) | 2021.01.08 |