[백준] 13305, 2750, 2440, 2441, 11718, 1924, 2920, 11721, 11719, 7568, 10773, 2442, 2446, 2475, 2747 (파이썬)

Colacan·2022년 2월 15일
1

[백준]

목록 보기
30/43

오늘부터 구현에 관한 내용을 위주로 나간다. 그래도 그리디 알고리즘은 하루에 1개씩 풀어나갈 예정이다. 구현은 파이썬의 내장함수나 모듈에 대한 이해도가 뛰어날수록 쉬워진 것 같다. 일종의 도메인을 늘리는 과정이라고 생각한다. 알고리즘 파악은 쉬운 편이라 막히진 않았던 것 같다.

백준 13305번 주유소

'''부분성공
import sys
N = int(sys.stdin.readline())
road = list(map(int,sys.stdin.readline().split()))
oil = list(map(int,sys.stdin.readline().split()))
count = 0
count += road[0]*oil[0]
for i in range(1,N-1):
    count += road[i]*min(oil[0:i+1])
print(count)
'''
import sys
N = int(sys.stdin.readline())
road = list(map(int,sys.stdin.readline().split()))
oil = list(map(int,sys.stdin.readline().split()))
count = 0
cost = oil[0]
for i in range(N-1):
    if oil[i] < cost:
        cost = oil[i]
    count += road[i]*cost
print(count)

백준 2750번 수 정렬하기

import sys
N = int(sys.stdin.readline())
num_list = []
for _ in range(N):
    num = int(sys.stdin.readline())
    num_list.append(num)
num_list.sort()
for i in num_list:
    print(i)

백준 2440번 별 찍기 - 3

import sys
N = int(sys.stdin.readline())
star = '*'
for i in range(N,0,-1):
    print(star*i)

백준 2441번 별 찍기 - 4

import sys
N = int(sys.stdin.readline())
star = '*'
blank = ' '
for i in range(N,0,-1):
    print(blank*(N-i) + star*i)

백준 11718번 그대로 출력하기

while True :
    try :
        print(input())
    except :
        break

백준 1924번 2007년

import datetime
import sys
M,D = sys.stdin.readline().split()
str_datetime = '2007' +'-'+ M + '-' + D
format = '%Y-%m-%d'
dt_datetime = datetime.datetime.strptime(str_datetime,format)
print(dt_datetime.strftime('%a').upper())

백준 2920번 음계

import sys
num = list(map(int,sys.stdin.readline().split()))
num_as = sorted(num)
num_de = sorted(num,reverse=True)
if num == num_as:
    print('ascending')
elif num == num_de:
    print('descending')
else :
    print('mixed')

백준 11721번 열 개씩 끊어 출력하기

import sys
word = sys.stdin.readline().strip()
for i in range(0,len(word),10):
    print(word[i:i+10])

백준 11719번 그대로 출력하기 2

while True :
    try :
        print(input())
    except :
        break

백준 7568번 덩치

import sys
N = int(sys.stdin.readline())
num_lst = list()
rank = list()
for _ in range(N):
    num_lst.append(list(map(int,sys.stdin.readline().split())))
for i in range(N):
    count = 0
    for j in range(N):
        if num_lst[i][0] < num_lst[j][0] and num_lst[i][1] < num_lst[j][1]:
            count += 1
    rank.append(count+1)
print(*rank)

백준 10773번 제로

import sys
K = int(sys.stdin.readline())
num_list = []
for _ in range(K):
    num = int(sys.stdin.readline())
    if num!=0:
        num_list.append(num)
    else:
        num_list.pop()
print(sum(num_list))

백준 2442번 별 찍기 - 5

import sys
N = int(sys.stdin.readline())
star = '*'
blank = ' '
count = 1
for i in range(N):
    print(blank*(N-i-1)+ star*count)
    count += 2

백준 2446번 별 찍기 - 9

import sys
N = int(sys.stdin.readline())
star = '*'
blank = ' '
count = 1+2*(N-1)
for i in range(N-1):
    print(blank*(i)+ star*count)
    count -= 2
count = 1
for i in range(N):
    print(blank*(N-i-1)+ star*count)
    count += 2

백준 2475번 검증수

import sys
N = list(map(int,sys.stdin.readline().split()))
for i in range(len(N)):
    N[i] = N[i]**2
print(sum(N)%10)

백준 2747번 피보나치 수

import sys
N = int(sys.stdin.readline())
pibo = list(0 for _ in range(N+1))
pibo[0] = 0
pibo[1] = 1
for i in range(2,N+1):
    pibo[i] = pibo[i-1]+pibo[i-2]
print(pibo[N])
profile
For DE, DA / There is no royal road to learning

0개의 댓글