오늘부터 구현에 관한 내용을 위주로 나간다. 그래도 그리디 알고리즘은 하루에 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])