[백준] 회전하는 큐 1021 (파이썬)
문제 풀이 # 예제2 해석 # 1번 연산: 앞에 있는 것 빼기 (data.popleft()) # 2번 연산: 왼쪽으로 밀기 (data.append(data.popleft())) # 3번 연산: 오른쪽으로 밀기 (data.appendleft(data.pop())) n,m = 10, 3 value = [2,9,5] # 뽑아 내려는 수가 2 9 5 일 때 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # 2 수행 후 2, 3, 4, 5, 6, 7, 8, 9, 10, 1 # 1 수행 후 3, 4, 5, 6, 7, 8, 9, 10, 1 # 3, 3, 3 수행 후 9, 10, 1, 3, 4, 5, 6, 7, 8 # 1 시행 후 10, 1, 3, 4, 5, 6, 7, 8 # 2,2,2,2 or 3,3,3,..
2021. 3. 10.
[백준] [재귀 분석 추가] 하노이의 탑 이동 순서 1759 (파이썬)
def hanoi(n, a, b): n > 1: hanoi(n-1, a, 6-a-b) # 기둥이 1개 이상이면 그룹으로 묶인 n-1개 원판을 중간으로 먼저 다 옮기겠다 1, 2, 3이기 때문에 중간은 1,3을 뺀 값 print(a,b) # n번 째 기둥이 a -> b 로 옮겨짐 n > 1: # 기둥이 한개 이상이면 남은 기둥 (n-1)개를 중간에서 b로 옮기겠다. hanoi(n-1, 6-a-b, b) n = int(input()) print(2 ** n-1) # 총 이동해야하는 횟수 hanoi(n, 1, 3) # 3개 원판을 기둥 1에서 3으로 옮기겠다 재귀함수 개념 2021.03.08 - [Algorithm & Data structure] - 재귀 함수 재귀 함수 재귀 함수(Recursive Funct..
2021. 3. 8.
[백준] 크로아티아 알파벳 2941 (파이썬)
# 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. # 크로아티아 알파벳변경 # čc= # ćc- # dždz= # đd- # ljlj # njnj # šs= # žz= # 예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다. 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다. # dž는 무조건 하나의 알파벳으로 쓰이고, d와 ž가 분리된 것으로 보지 않는다. lj와 nj도 마찬가지이다. 위 목록에 없는 알파벳은 한 글자씩 센다. # 입력 # 첫째 줄에 최대 100글자의 단어가 주어진다. 알파벳 소문자와 '-', '='로만 이루어져 있다. # 단어는..
2021. 3. 8.