코드업 기초 100제

1012 실수 1개 입력받아 그대로 출력하기

print("%f" % float(input()))

1013 정수 2개 입력받아 그대로 출력하기

a,b = input().split()
print(a, b) # ','를 입력하면 한칸띄고 출력된다

1019 연월일 입력받아 그대로 출력하기

입력출력
2013.8.52013.08.05
y,m,d= input().split('.')
print('%04d.%02d.%02d' % (int(y),int(m),int(d))) 
#%02d: 08 09 10 이런식으로 출력됨/ 포맷스트링 여러개 넣을땐 (a,b,c)

1024 단어 1개 입력받아 나누어 출력하기

입력출력
Boy'B'
'o'
'y'
for c in input():
    print("'"+c+"'")

1034 8진 정수 1개 입력받아 10진수로 출력하기

입력출력
1311
print(int(input(), 8))

1036 영문자 1개 입력받아 10진수로 출력하기

입력출력
A65
print(ord(input()))
#ord(문자) : 아스키 코드 반환
#chr(숫자) : 숫자에 맞는 아스키코드 반환

1053 참 거짓 바꾸기

입력출력
10
print(int(not(bool(int(input())))))
#bool() 논리 판별 내장함수

1092 함께 문제 푸는 날 (최소공배수)

입력출력
3 7 963
a,b,c = map(int,input().split())
day=1
while day%a!=0 or day%b!=0 or day%c!=0:
    day+=1
print(day)

1093 이상한 출석 번호 부르기1

  • 첫 번째 줄에 출석 번호를 부른 횟수인 정수 n이 입력된다. (1 ~ 10000)
    두 번째 줄에는 무작위로 부른 n개의 번호(1 ~ 23)가 공백을 두고 순서대로 입력된다.
  • 1번부터 번호가 불린 횟수를 순서대로 공백으로 구분하여 한 줄로 출력한다.
입력출력
10
1 3 2 2 5 6 7 4 5 9
1 2 1 1 2 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
  1. 배열 이용
num = int(input())
data = list(map(int,input().split()))

array = [0 for _ in range(23)]
for i in data:
    array[i-1]+=1

for i in range(23):
    print(array[i], end=' ')
  1. Counter 이용
from collections import Counter

num = int(input())
counter = Counter(list(map(int,input().split()))) # 리스트 원소별 등장횟수 카운트 
d={i:0 for i in range(1,24)} # 키 1~23 밸류 0인 딕셔너리 d 생성
d.update(dict(counter)) # counter를 딕셔너리로 변환 후 d에 업데이트
for i in d.values():
    print(i, end=' ')

1094 이상한 출석 번호 부르기2

  • 입력값 뒤집기
입력출력
10
10 4 2 3 6 6 7 9 8 5
5 8 9 7 6 6 3 2 4 10
num = int(input())
data = list(map(int,input().split()))

for i in reversed(data): 
   print(i, end=' ')
   
#list.reverse() 반환하지않고 리스트 값 순서 거꾸로
#reversed(list) 거꾸로 된 리스트 반환

1096 바둑판에 흰 돌 놓기

  • 바둑판에 올려 놓을 흰 돌의 개수(n)가 첫 줄에 입력된다.
    둘째 줄 부터 n+1 번째 줄까지 힌 돌을 놓을 좌표(x, y)가 n줄 입력된다.
    n은 10이하의 자연수이고 x, y 좌표는 1 ~ 19 까지이며, 같은 좌표는 입력되지 않는다.
  • 흰 돌이 올려진 바둑판의 상황을 출력한다.
    흰 돌이 있는 위치는 1, 없는 곳은 0으로 출력한다.
입력출력
5
1 1
2 2
3 3
4 4
5 5
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
num = int(input())
array = [[0]*19 for _ in range(19)] #2차원 배열 초기화
for i in range(num):
    x,y = map(int,input().split())
    array[x-1][y-1]=1

for i in range(19):
    for j in range(19):
        print(array[i][j], end=' ')
    print()

1097 바둑알 십자 뒤집기

  • 바둑알이 깔려 있는 상황이 19 * 19 크기의 정수값으로 입력된다.
    십자 뒤집기 횟수(n)가 입력된다.
    십자 뒤집기 좌표가 횟수(n) 만큼 입력된다. 단, n은 10이하의 자연수이다.
  • 십자 뒤집기 결과를 출력한다.
입력출력
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
2
10 10
12 12
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
array = [[] for _ in range(19)]
for i in range(19):
    array[i] = list(map(int,input().split()))

num = int(input())
for i in range(num):
    x,y = map(int,input().split()) # x, y좌표 입력
    array[x-1] = [int(not i) for i in array[x-1]] # x축 뒤집기
    for j in range(19):
        array[j][y-1] = int(not array[j][y-1]) # y축 뒤집기

for i in range(19):  
    for j in range(19):
        print(array[i][j], end=' ')
    print()

1098 설탕과자 뽑기

  • 첫 줄에 격자판의 세로(h), 가로(w) 가 공백을 두고 입력되고,
    두 번째 줄에 놓을 수 있는 막대의 개수(n)
    세 번째 줄부터 각 막대의 길이(l), 방향(d), 좌표(x, y)가 입력된다.
  • 모든 막대를 놓은 격자판의 상태를 출력한다.
    막대에 의해 가려진 경우 1, 아닌 경우 0으로 출력한다.
    단, 각 숫자는 공백으로 구분하여 출력한다.
입력출력
5 5
3
2 0 1 1
3 1 2 3
4 1 2 5
1 1 0 0 0
0 0 1 0 1
0 0 1 0 1
0 0 1 0 1
0 0 0 0 1
h, w = map(int,input().split())
array = [[0]*w for i in range(h)] #격자판 생성
n = int(input())
for i in range(n): #막대 개수만큼 반복
    l,d,x,y = map(int,input().split()) #막대 스펙 입력
    for i in range(l): #막대 길이만큼 반복
        if d == 0: # 가로 방향
            array[x-1][y-1+i]=1
        else:
            array[x-1+i][y-1]=1

for i in range(h):
    for j in range(w):
        print(array[i][j], end=' ')
    print()

1099 성실한 개미

개미는 오른쪽으로 움직이다가 벽을 만나면 아래쪽으로 움직여 가장 빠른 길로 움직였다. (오른쪽에 길이 나타나면 다시 오른쪽으로 움직인다.)
미로 상자에 넣은 개미는 먹이를 찾았거나, 더 이상 움직일 수 없을 때까지
오른쪽 또는 아래쪽으로만 움직였다.
미로 상자의 구조가 0(갈 수 있는 곳), 1(벽 또는 장애물)로 주어지고,
먹이가 2로 주어질 때, 성실한 개미의 이동 경로를 예상해보자.
단, 맨 아래의 가장 오른쪽에 도착한 경우, 더 이상 움직일 수 없는 경우, 먹이를 찾은 경우에는 더이상 이동하지 않고 그 곳에 머무른다고 가정한다.
미로 상자의 테두리는 모두 벽으로 되어 있으며,
개미집은 반드시 (2, 2)에 존재하기 때문에 개미는 (2, 2)에서 출발한다.

  • 10*10 크기의 미로 상자의 구조와 먹이의 위치가 입력된다.
  • 성실한 개미가 이동한 경로를 9로 표시해 출력한다.
입력출력
1 1 1 1 1 1 1 1 1 1
1 0 0 1 0 0 0 0 0 1
1 0 0 1 1 1 0 0 0 1
1 0 0 0 0 0 0 1 0 1
1 0 0 0 0 0 0 1 0 1
1 0 0 0 0 1 0 1 0 1
1 0 0 0 0 1 2 1 0 1
1 0 0 0 0 1 0 0 0 1
1 0 0 0 0 0 0 0 0 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 9 9 1 0 0 0 0 0 1
1 0 9 1 1 1 0 0 0 1
1 0 9 9 9 9 9 1 0 1
1 0 0 0 0 0 9 1 0 1
1 0 0 0 0 1 9 1 0 1
1 0 0 0 0 1 9 1 0 1
1 0 0 0 0 1 0 0 0 1
1 0 0 0 0 0 0 0 0 1
1 1 1 1 1 1 1 1 1 1
array = [[0]*10 for _ in range(10)]

for i in range(10):
    array[i] = list(map(int,input().split()))
x=1
y=1
stun=0 # 못 움직인 횟수
while True:
    if(stun==2): break 
    #개미는 오른쪽 또는 아래로만 가는데 연속 2번 못 움직이면 더 이상 움직일 수 없는 경우

    if array[x][y] == 0: # 벽이 없으면 y+1
        array[x][y]=9
        y+=1
        stun=0 # 못 움직인 횟수 초기화
    elif array[x][y] == 1: # 벽에 막히면 왼쪽 한칸 후 밑으로 한칸
        x+=1
        y-=1
        stun+=1 # 못 움직인 횟수 증가
    else: # 먹이 찾은 경우
        array[x][y]=9
        break

for i in range(10):
    for j in range(10):
        print(array[i][j], end=' ')
    print()

좋은 웹페이지 즐겨찾기