백준 21610. 마법사 상어와 비바라기 - 골드 5
21610번: 마법사 상어와 비바라기 (acmicpc.net) 21610번: 마법사 상어와 비바라기 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그 마법을 할 수 있다. 오늘 새로 배운 마법은 비바라기이다. 비바라기를 시전하면 하늘에 비구름을 만들 수 있다. 오늘은 비바라기 www.acmicpc.net 삼성 최신 기출은 확실히 구현이 많이 나온다. 구현 문제는 문제만 잘 읽고 따라가면 답이 나오는 듯 하다. 그런데, 테스트케이스에 속아 히든케이스에서 시간초과가 발생할 위험이 있다. 1. 항상 입력값 조건을 잘 따지자. 2. 아래와 같이 x도 리스트, list도 리스트 일 때 in을 사용한 방식은 절대 절대 사용하면 안된다. list = [[0,0], [0,1], [1,0], [1,1]] x =..
2021. 10. 15.
백준 1629. 곱셈 - 실버 1
1629번: 곱셈 (acmicpc.net) 1629번: 곱셈 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. www.acmicpc.net 분할정복을 이용한 거듭제곱 구하기인 줄 알았다. 나름 도전해보면서 DP 문제처럼 mem이라는 리스트도 사용해보았으나 실패한 흔적이다. import sys sys.stdin = open("sample.txt", "r") A,B,C = map(int, sys.stdin.readline().split()) mem = dict() mem[1] = A def n_square(n, k): if k not in list(mem.keys()): mem[k // 2] = n_square(n, k //..
2021. 8. 27.
백준 11729. 하노이탑 - 실버 2
하노이탑 알고리즘 A, B, C 기둥이 있고, A의 원반을 전부 C로 옮기는 것이 목표 1. n-1 개의 원반을 B로 옮긴다. 2. A에 남은 원반을 C로 옮긴다. 3. B에 있는 n-1 개의 원반을 C로 옮긴다. * n이 1일 때에는 목적지로 바로 이동시켜준다. import sys sys.stdin = open("sample.txt", "r") n = int(sys.stdin.readline()) stick = [] stick += [i for i in range(n,0,-1)], [],[] def hanoi(n, A, B, C): # A에서 C로 이동시키고, B를 보조로 사용 if n == 1: print(f'{A} {C}') # C.append(A.pop()) return hanoi(n-1, A, ..
2021. 8. 12.