본문 바로가기
반응형

Python13

[코딩테스트 연습] Programmers 코딩테스트 연습 > 연습문제 > 둘만의 암호 - python [Programmers] 둘만의 암호 (Python) - 테크가이던스 - 티스토리 문제 설명 두 문자열 s와 skip, 그리고 자연수 index가 주어질 때, 다음 규칙에 따라 문자열을 만들려 합니다. 암호의 규칙은 다음과 같습니다. 문자열 s의 각 알파벳을 index만큼 뒤의 알파벳으로 바꿔줍니다. index만큼의 뒤의 알파벳이 z를 넘어갈 경우 다시 a로 돌아갑니다. skip에 있는 알파벳은 제외하고 건너뜁니다. 예를 들어 s = "aukks", skip = "wbqd", index = 5일 때, a에서 5만큼 뒤에 있는 알파벳은 f지만 [b, c, d, e, f]에서 'b'와 'd'는 skip에 포함되므로 세지 않습니다. 따라서 'b', 'd'를 제외하고 'a'에서 5만큼 뒤에 있는 알파벳은 [c,.. 2023. 2. 3.
[코딩테스트 연습] Programmers 2021 KAKAO BLIND RECRUITMENT > 신규 아이디 추천 - python [Programmers] 신규 아이디 추천 (Python) - 테크가이던스 - 티스토리 문제 설명 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 가입하는 유저들이 카카오 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천해주는 프로그램을 개발하는 것입니다. 다음은 카카오 아이디의 규칙입니다. 아이디의 길이는 3자 이상 15자 이하여야 합니다. 아이디는 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.) 문자만 사용할 수 있습니다. 단, 마침표(.)는 처음과 끝에 사용할 수 없으며 또한 연속으로 사용할 수 없습니.. 2022. 12. 22.
[자료구조] 큐(queue)의 이해 - python을 통한 실습 (6) 큐(queue) - 큐(queue)는 스택(Stack)처럼 일종의 리스트 - 단 데이터의 삽입은 한쪽 끝에서, 삭제는 반대쪽 끝에서만 일어남 - 삽입이 일어나는 쪽을 rear, 삭제가 일어나는 쪽을 front - FIFO (First-In, First-Out) 큐의 연산 - insert, enqueue,offer, push : 큐의 rear에 새로운 원소를 삽입하는 연산 - remove, dequeue, poll, pop : 큐의 front에 있는 원소를 큐로부터 삭제하고 반환하는 연산 - element, front, peek : 큐의 front에 있는 원소를 제거하지 않고 반환 - empty : 큐가 비었는지 검사 #Python 예제 queue = [1,2,3] queue.append(4) #queue.. 2022. 11. 23.
[자료구조] 스택(Stack)의 후위표기식으로 변환(괄호가 있는 경우) (5) 중위 표기식을 후위 표기식으로 변환 (괄호가 있는 경우) e.g ) (2+10)/(9-6) 1. 여는 괄호는 무조건 스택에 push (Tip.이때 스택 내의 어떤 연산자도 pop 하지 않는다) 2. 어떤 연산자를 스택에 push할 때 스택의 top에 여는 괄호가 있으면 아무것도 pop하지 않고 push 3. 입력에 닫는 괄호가 나오면 스택에서 여는 괄호가 나올 때 까지 pop하여 출력한다. 4. 닫는 괄호는 스택에 push 하지 않는다. (stack의 여는 괄호도 pop 한다.) # 괄호가 있는 중위 표기식을 후위 표기식으로 변환 # 입력 : 3 + ( ( 4 * 7 ) / 2 ) # 기대 출력 : [3, 4, 7, '*', 2, '/', '+'] OPERATORS = "+-*/()" PRECEDENCE.. 2022. 11. 14.
[자료구조] 스택(Stack)의 응용 중위표기식 -> 후위표기식 (4) 중위 표기식을 후위 표기식으로 변환 e.g ) 2 - 10 / 5 * 6 + 4 1. 중위 표기식을 처음부터 순서대로 읽음 2. 피연산자의 경우에는 바로 출력 가능 3. 연산자의 경우 일단 스택에 stack에 push하여 우선 순위 확인 필요 (LIFO 구조이기 때문) 4. Tip. 스택의 우선순위 보다 더 높은 연산자가 있으면 pop하여 출력한 후에 push (우선순위가 높은 연사자는 모두 pop 해야함) 5. 수식이 종료되면 스택에 있는 모든 연산자를 pop하여 출력 #Python 코드 # 괄호가 없는 중위 표기식을 후위 표기식으로 변환 # 입력 : 2 - 10 / 5 * 6 + 4 # 기대 출력 : [2, 10, 5, '/', 6, '*', '-', 4, '+'] OPERATORS = '+-*/' .. 2022. 11. 11.
[자료구조] 스택(Stack)의 응용 후위표기식 - python을 통한 실습 (3) 후위 표기식(postfix expression) - 일반적으로 사용하는 수식의 표기법은 중위 표기식(infix expression) ㄴ 연산자(+, - *, /)가 피연산자의 사이에 들어감 - 후위 표기식(postfix expression) ㄴ 연산자가 피연산자 뒤에 나옴 - 괄호가 필요없음 후위 표기식을 스택으로 구현 (입력 : 후위 표기식, 출력 : 계산 값) 1. 피연산자를 stack에 넣는다 2. 연산자가 나오면 stack에서 pop()을 두번하여 연산자를 꺼낸 후 적용 ㄴ Tip. 먼저 꺼낸 값이 오른쪽 피연산자가 되고, 나중에 꺼낸 값이 왼쪽 피연산자가 된다! 3. 결과값을 다시 stack에 push() 4. 반복 후 stack에는 하나의 값만 남아 있어야하며 그 값이 계산 결과가 된다. # .. 2022. 11. 11.