[BOJ] [Python] 1914: 하노이 탑
전형적인 하노이 탑 구현 문제이다. def honoi_tower(n, start, tmp, end): if n == 1: print(start, end) else: honoi_tower(n-1, start, end, tmp) print(start, end) honoi_tower(n-1, tmp, start, end) num = int(input()) print(2 ** num - 1) if num
[프로그래머스][2021 KAKAO BLIND RECRUITMENT][Python] 신규 아이디 추천
문제를 정리해보자. 카카오 아이디가 주어진다. 규칙에 맞지 않는 아이디라면 규칙에 맞는 아이디로 바꿔야 한다. 다음은 카카오 아이디의 규칙이다. 1. 아이디의 길이는 3자 이상 15자 이하여야 한다. 2. 아이디는 알파벳 소문자, 숫자, 빼기, 밑줄, 마침표 문자만 사용할 수 있다. (단, 마침표는 처음과 끝에 사용할 수 없으며 또한 연속으로 사용할 수 없다.) 규칙 맞는 아이디로 처리하는 과정은 아래와 같다. 1단계: 모든 대문자를 대응되는 소문자로 변환한다. 2단계: 알파벳 소문자, 숫자, 빼기, 밑줄, 마침표를 제외한 모든 문자를 제거한다. 3단계: 마침표가 2번 이상 연속된 부분을 하나의 마침표로 치환한다. 4단계: 마침표가 처음이나 끝에 위치한다면 제거한다. 5단계: 빈 문자열이라면, "a"를 ..
[프로그래머스][2021 Dev-Matching: 웹 백앤드 개발자(상반기)][Python] 로또의 최고 순위와 최저 순위
문제를 정리해보자. 로또는 1부터 45까지 숫자 중에서 6개를 찍어서 맞히는 대표적인 복권이다. 아래는 로또의 순위를 정하는 방식이다. 민우는 로또를 구매했다. 하지만 숫자 몇 개는 알아볼 수 없게 됐다. 민우의 로또로 당첨이 가능했던 최고 순위와 최저 순위를 알아보자. (0은 알아볼 수 없는 숫자이다.) 예) 민우의 번호 : 44, 1, 0, 0, 31, 25 당첨 번호 : 31, 10, 45, 1, 6, 19 최고 순위 : 3등 (4개 번호가 일치) 최저 순위 : 5등 (2개 번호가 일치) 풀이를 생각해보자. 먼저, 민우가 구매한 로또의 번호와 당첨 번호가 몇 개가 일치하는지 확인한다. 그리고 최고 순위와 최저 순위를 구한다. 최고 순위 : 0이 모두 당첨 숫자가 일 때이다. 최저 순위 : 0이 모두..