문제 프로그래머스 짝지어 제거하기 Level 2 Link 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr 나의 접근 첫 시도 (시간 초과) 정확도는 테스트 케이스를 모두 패스했으나 효율성에서 단 한개의 테스트 케이스도 통과하지 못했다.. 문자열을 리스트로 받고 큐의 상위 원소가 들어오는 원소와 같으면 기존의 큐에서 pop해주고, 그러지 않은 경우에는 q에 추가를 해주었다. 아무래도 문자열이 엄청 길어지는 테스트 케이스에서 효율성을 패스를 못하는 것 같았다. def solution(s): q = [..
문제 프로그래머스: 프린터 Level 2 Stack/Queue 문제링크 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 나의 접근 순환 stack 을 생각해서 풀었다. 1. 첫번째 인덱스는 고정 시키고 나머지의 리스트에서 더 큰 숫자가 있으면 해당 인덱스를 리스트의 가장 뒤로 보내준다. 2. 순환을 계속하며 첫 번째 인덱스가 가장 큰 숫자일 시, 스택에서 pop 시켜준다. Count를 증가시켜준다. 3. 모든 순환이 발생할 시, 내가 가지고 있는 문서의 인덱스 번호도 업데이트 해준다. 4. Stack이 빌 때까지..
프로그래머스: 전화번호 목록 Level 2 문제링크 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr 나의 접근 접근1: 큐로 풀었다가 시간 초과 에러 및 테스트케이스 3개를 통과시키지 못했다. def solution(phone_book): count = len(phone_book) while count > 0: num = phone_book.pop(0) for i in range(len(phone_book)): if num in phone_book[i]: return False phone_book.appe..