본문 바로가기

Python

(94)
Python ABC(Abstract Base Class) 추상 클래스 다음은 abc를 적용한 예이다. import abc class BaseClass: __metaclass__ = abc.ABCMeta @abc.abstractmethod def func1(self): pass @abc.abstractmethod def func2(self): pass 추상화 시키고자 하는 메서드에 데코레이터로 @abstractmethod 를 선언해 주면 된다. 이렇게 적용하게 되면, BaseClass를 상속받는 모든 파생 클래스에서 해당 메서드를 선언해서 구현하지 않으면, 에러를 발생시키게 된다. Traceback (most recent call last): File "D.py", line 2, in _m = getattr(__import__(cls_name, fromlist=[]), cl..
Python 문제 11 #문제1 빈칸 채워 넣기 배달음식 전문점 운영을 위해 다음과 같이 DeliveryStore 인터페이스와 PizzaStore, Food 클래스를 작성했습니다. * DeliveryStore : * DeliveryStore는 배달 음식점의 인터페이스입니다. * 배달 음식점은 set_order_list와 get_total_price 함수를 구현해야 합니다. * set_order_list 함수는 주문 메뉴의 리스트를 매개변수로 받아 저장합니다. * get_total_price 함수는 주문받은 음식 가격의 총합을 return 합니다. * Food : * Food는 음식을 나타내는 클래스입니다. * 음식은 이름(name)과 가격(price)으로 구성되어있습니다. * PizzaStore * PizzaStore는 피자 ..
Python 문제 10 [카카오 인턴] 키패드 누르기 문제 설명 스마트폰 전화 키패드의 각 칸에 다음과 같이 숫자들이 적혀 있습니다. 이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다. 맨 처음 왼손 엄지손가락은 * 키패드에 오른손 엄지손가락은 # 키패드 위치에서 시작하며, 엄지손가락을 사용하는 규칙은 다음과 같습니다. 엄지손가락은 상하좌우 4가지 방향으로만 이동할 수 있으며 키패드 이동 한 칸은 거리로 1에 해당합니다. 왼쪽 열의 3개의 숫자 1, 4, 7을 입력할 때는 왼손 엄지손가락을 사용합니다. 오른쪽 열의 3개의 숫자 3, 6, 9를 입력할 때는 오른손 엄지손가락을 사용합니다. 가운데 열의 4개의 숫자 2, 5, 8, 0을 입력할 때는 두 엄지손가락의 현재 키패드의 위치에서 더 가까..
특정 문자 제거 list 특정 문자 제거 문자형만 사용가능 join : 구분자.join( ) 매개변수로 들어온 리스트 있는 요소 하나하나를 합쳐서 하나의 문자열로 바꾸어 반환하는 함수이다. 리스트값을 문자열로 바꿀 수 있다. A = "".join(["a", "b", "c"]) print(A) >>> abc A = "_".join(["a", "b", "c"]) print(A) >>> a_b_c A = "\n".join(["a", "b", "c"]) print(A) >>> a b c 이런식으로 for 와 not in 을 이용해서 제거 할 수 있다. A = "...!@BaT#*..y.abcdefghijklm" B = "-_.~!@#$%^&*()=+[{]}:?,/" print(A) A = "".join( x for x in A..
Python 문제 9 숫자 문자열과 영단어 문제 설명 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다. 1478 → "one4seveneight" 234567 → "23four5six7" 10203 → "1zerotwozero3" 이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요. 참고로 각 숫자에 대응되는 영단어는 다음 표와 같습니다. 숫자영단어 0 zero 1 one 2 two 3 three 4 four 5 fi..
list 원소 추가/제거 list 원소 추가 append : 리스트명.append(요소) 리스트 뒤에 요소가 추가된다. A = [1, 2, 3] print(A) A.append(4) print(A) A.append(0) print(A) >>> [1, 2, 3] [1, 2, 3, 4] [1, 2, 3, 4, 0] insert : 리스트명.insert(인덱스, 요소) 리스트 중간에 요소를 추가 할 수 있다. A = [1, 2, 3] print(A) A.insert(3, 4) print(A) A.insert(0, 0) print(A) >>> [1, 2, 3] [1, 2, 3, 4] [0, 1, 2, 3, 4] + 연산자, * 연산자 A = [1, 2, 3] B = [4, 5, 6] print(A) print(A + B) print(A..
Python 문제 8 게임개발자인 "죠르디"는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다. "죠르디"는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다. 게임 화면은 "1 x 1" 크기의 칸들로 이루어진 "N x N" 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 "5 x 5" 크기의 예시입니다). 각 격자 칸에는 다양한 인형이 들어 있으며 인형이 없는 칸은 빈칸입니다. 모든 인형은 "1 x 1" 크기의 격자 한 칸을 차지하며 격자의 가장 아래 칸부터 차곡차곡 쌓여 있습니다. 게임 사용자는 크레인을 좌우로 움직여서 멈춘 위치에서 가장 위에 있는 인형을 집어 올릴 수 있습니다. 집어 올린 인형은 바구니에 쌓이게 되는 데, 이때 바구..
Python 문제 7 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 가입하는 유저들이 카카오 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천해주는 프로그램을 개발하는 것입니다. 다음은 카카오 아이디의 규칙입니다. 아이디의 길이는 3자 이상 15자 이하여야 합니다. 아이디는 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.) 문자만 사용할 수 있습니다. 단, 마침표(.)는 처음과 끝에 사용할 수 없으며 또한 연속으로 사용할 수 없습니다. "네오"는 다음과 같이 7단계의 순차적인 처리 과정을 통해 신규 유저가 입력한 아이디가 카카오..