: 머릿속에 있는 알고리즘을 정확하고 빠르게 프로그램으로 작성하기
(이코테 2021 강의 몰아보기) 2. 그리디 & 구현
시뮬레이션
완전 탐색
arr = []
for i in range(1, 10001):
i_sum = i
for j in range(len(str(i))):
i_sum += int(str(i)[j])
arr.append(i_sum)
for i in range(1, 10001):
if i in arr:
continue
else:
print(i)
from collections import Counter
import sys
from collections import Counter
input = sys.stdin.readline
N = int(input())
arr = []
for n in range(N):
arr.append(int(input()))
mean = round(sum(arr)/N)
med = sorted(arr)[N//2]
count = Counter(arr)
modes = []
for el, cnt in count.items():
if cnt == max(count.values()):
modes.append(el)
if len(modes) > 1:
modes.remove(min(modes))
mod = min(modes)
rang = max(arr) - min(arr)
print(mean, med, mod, rang, sep='\\n')
import sys
input = lambda: sys.stdin.readline().rstrip()
def loc_to_coord(loc):
return [int(ord(loc[0]) - ord('A') + 1), int(loc[1])]
def check_next(new, past):
global visited
if abs(new[0] - past[0]) == 2 and abs(new[1] - past[1]) == 1:
return True
elif abs(new[0] - past[0]) == 1 and abs(new[1] - past[1]) == 2:
return True
else:
return False
loc = loc0 = loc_to_coord(input())
visited = [[0]*6 for _ in range(6)]
visited[loc[0]-1][loc[1]-1] += 1
for i in range(35):
new_loc = loc_to_coord(input())
if visited[new_loc[0]-1][new_loc[1]-1] == 0 and check_next(new_loc, loc):
loc = new_loc
visited[loc[0]-1][loc[1]-1] += 1
else:
break
is_zero = 0
for i in range(6):
is_zero += int(0 in visited[i])
if is_zero == 0 and check_next(loc, loc0):
print("Valid")
else:
print("Invalid")