정구리의 우주정복

[Code Up] 코드업 기초 100제 파이썬 1081-1099 (1097없음) 풀이 본문

ALGORITHM/SOLVE

[Code Up] 코드업 기초 100제 파이썬 1081-1099 (1097없음) 풀이

Jungry_ 2020. 5. 2. 17:50
반응형

*정답은 여러가지임

**질문은 댓글

***파이썬

1081 : [기초-종합] 주사위를 2개 던지면?(설명)

num = [int(x) for x in input().strip().split(' ')]

for i in range(1,num[0]+1):
    for j in range(1,num[1]+1):
        print(str(i)+' '+str(j))

1082 : [기초-종합] 16진수 구구단?

num= int(input(),16)
hex_num = hex(num)[2:].upper()

for i in range(1,16):
    hex_i = hex(i)[2:].upper()
    print(str(hex_num)+'*'+str(hex_i)+'='+str(hex(num*i)[2:].upper()))
    

1083 : [기초-종합] 3 6 9 게임의 왕이 되자!(설명)

num = int(input())

for i in range(1,num+1):
    if i%3==0:
        print('X',end=' ')
    else:
        print(i,end=' ')

1084 : [기초-종합] 빛 섞어 색 만들기(설명)

num = [int(x) for x in input().strip().split(' ')]
sum = 0
for i in range(num[0]):
    for j in range(num[1]):
        for k in range(num[2]):
            print(str(i)+' '+str(j)+' '+str(k))
            sum +=1

print(sum)

1085 : [기초-종합] 소리 파일 저장용량 계산하기(설명)

sound = [int(x) for x in input().strip().split(" ")]
total = sound[0]*sound[1]*sound[2]*sound[3]

total = total/8/1024/1024
print('%.1f'%total+' MB')

문제 이해가 좀 어려웠는데 MB 니까 1024로 2번 나눠서 해주면 되는거였음

      8 bit(비트)           = 1byte(바이트)     //       8bit=1Byte
1024 Byte(210 byte) = 1KB(킬로 바이트) // 1024bit=1KB
1024 KB(210 KB)      = 1MB(메가 바이트)
1024 MB(210 MB)     = 1GB(기가 바이트)
1024 GB(210 GB)      = 1TB(테라 바이트)

1086 : [기초-종합] 그림 파일 저장용량 계산하기(설명)

pic = [int(x) for x in input().strip().split(" ")]
total = pic[0]*pic[1]*pic[2]

total = total/8/1024/1024
print('%.2f'%total+' MB')

1087 : [기초-종합] 여기까지! 이제 그만~(설명)

num = int(input())
sum = 0 
start = 1
while sum < num :
    sum = sum+start
    start+=1

print(sum)

1088 : [기초-종합] 3의 배수는 통과?(설명)

num = int(input())

for i in range(1,num+1):
    if i%3==0:
        continue
    else:
        print(i,end=' ')

1089 : [기초-종합] 수 나열하기1

num = [int(x) for x in input().strip().split()]
sum = num[0]
for i in range(num[2]-1):
    sum+=num[1]
print(sum)

1090 : [기초-종합] 수 나열하기2

num = [int(x) for x in input().strip().split()]
sum = num[0]
for i in range(num[2]-1):
    sum=sum*num[1]
print(sum)

1091 : [기초-종합] 수 나열하기3

num = [int(x) for x in input().strip().split()]
sum = num[0]
for i in range(num[3]-1):
    sum=sum*num[1]+num[2]
print(sum)

1092 : [기초-종합] 함께 문제 푸는 날(설명)

num = [int(x) for x in input().strip().split()]
day = 1

#모두가 0이 아닌동안 실행
while day%num[0]!=0 or day%num[1]!=0 or day%num[2]!=0:
    day+=1

print(day)

1093 : [기초-1차원배열] 이상한 출석 번호 부르기1(설명)

call = int(input())
num = [int(x) for x in input().strip().split()]
num_list = [0 for _ in range(23)]

for i in num:
    num_list[i-1]+=1

for j in num_list:
    print(j,end=' ')

1094 : [기초-1차원배열] 이상한 출석 번호 부르기2(설명)

call = int(input())
num = [int(x) for x in input().strip().split()]
num_list = []
for i in range(call ,0 , -1):
    num_list.append(num[i-1])

for i in num_list:
    print(i,end=' ')

1095 : [기초-1차원배열] 이상한 출석 번호 부르기3(설명)

call = int(input())
num = [int(x) for x in input().strip().split()]
if len(num)<= 1:
    print(num[0])
else:
    if num[0]<= num[1]:
        min = num[0]
    else:
        min = num[1]
    for i in range(2,call):
        if min <= num[i]:
            continue
        else:
            min = num[i]
    print(min)

1096 : [기초-2차원배열] 바둑판에 흰 돌 놓기(설명)

num = int(input())
badook = [[0 for _ in range(19)] for _ in range(19)] #바둑판만들기

for i in range(num):
    white = [int(x) for x in input().strip().split(' ')]
    if badook[white[0]-1][white[1]-1] == 0:
        badook[white[0]-1][white[1]-1]+=1
    
for i in range(19):
    for j in range(19):
        print(badook[i][j],end = ' ')
    print()
        

    

이거 어려움 근데 품

 

1097번은 문제가 무슨말인지 몰라서 못품 .. 추후에 업뎃하겠음

1098 : [기초-2차원배열] 설탕과자 뽑기

width = [int(x) for x in input().strip().split(" ")] #격자 넓이 
board = [[0 for _ in range(width[1])] for _ in range(width[0])] #격자 생성
stick = int(input()) #막대개수 
size = []
for i in range(stick):
    size.append([int(x) for x in input().strip().split(" ")])
#길이 방향(0 가로 1 세로) 좌표 (가장 왼쪽 또는 위쪽의 위치)

for i in range(stick):
    if size[i][1] == 0: #가로방향일때 (가장왼쪽 , [][얘가 커져야함])
        for j in range(size[i][0]): #길이만큼 실행
            board[size[i][2]-1][size[i][3]-1+j]=1
#            
    elif size[i][1] == 1: #세로 방향일때 (가장위쪽 , [얘가 커져아함][])
        for j in range(size[i][0]):
            board[size[i][2]-1+j][size[i][3]-1]=1
            
#
#print(board)
for i in range(width[0]):
    for j in range(width[1]):
        print(board[i][j],end = ' ')
    print()
#        

1099 : [기초-2차원배열] 성실한 개미

x=1
y=1 #초기 좌표 x,y
board = [] 
check = 0

#입력값 받는 부분
for i in range(10):
    board.append([int(x) for x in input().strip().split(' ')])

#맨 처음 값이 (2,2) 에 먹이가 있다면 check 를 1 로 바꿔준다 
if board[x][y] ==2 :
    board[x][y]=9
    check = 1
else:
    board[x][y]=9 #그게 아니라면 (2,2) 를 9로 바꿔줌 

while True:
    if check==1: #초기값이 2였다면 break
        break
    elif (board[x][y+1]==1 and board[x+1][y]==1): #더이상 이동할 수 없을때 
        break
    elif board[x][y+1]==1 and board[x+1][y]==2: #아래에 먹이가 있는경우
        x+=1
        board[x][y]=9
        break
    elif board[x][y+1]==2: #오른쪽에 먹이 있을 때
        y+=1
        board[x][y]=9
        break
    elif board[x][y+1]==0: #오른쪽이 0인경우 (이동가능)
        y+=1
        board[x][y]=9
    elif board[x][y+1]==1 and board[x+1][y]==0: #오른쪽이 1이고 아래가 0(아래이동)
        x+=1
        board[x][y]=9

#판 출력
for i in range(10):
    for j in range(10):
        print(board[i][j],end=' ')
    print()

 

 

기초 100제 후기 

백준에 비해 난이도가 좀 더 쉬워서 입문자들이 하기에 좋은듯 

근데 문제 자체가 설명이 너무 부족하고 이해하기가 어렵게 생겼음 .. (1097은 뭘 맞추라는건지 도저히 모르겠음)

난이도가 올라갈수록 설명이 너무 난해해져버림 

테스트케이스의 개수도 많이 부족한듯

 

그래도 처음 알고리즘을 시작하기위해서 해본건데 문법들 다 사용해보고 8진수 16진수들도 다뤄볼수 있어서 내가 미처 생각해보지 못했던 여러가지 문제들을 풀어볼 수있어서 지능이 상승했다

근데 100제인데 왜 99까지밖에 없지 99제아님 ? 

반응형
Comments