본문 바로가기

개발/Python

(10)
2021 KAKAO BLIND RECRUITMENT - 신규 아이디 추천 https://programmers.co.kr/learn/courses/30/lessons/72410?language=python3 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 내 소스 import re def solution(new_id): str_char = "abcdefghijklmnopqrstuvwxyz0123456789-_." answer=new_id.lower() answer = ''.join(x for x in answer if x in str_char) answer = re.sub('..
[Python 프로그래머스] JadenCase 문자열 만들기 - level2 [연습 문제] 나의 풀이 > 이 문제도 매우매우 간단하지만 ! 문자열 맨 앞을 추출해서 대문자로 바꾸는 작업을 capitalize() 를 활용하여 간단하게 구현하는 것이 포인트였고, 문자열 중간 공백 개수, 시작 공백 개수, 마지막 공백 개수 모두 그대로 유지하는게 포인트라고 할 수 있을 것 같다. 그래서 중간에 주석처리된 로직을 보면 문자열 끝이 공백이면 변환된 answer 에도 공백을 유지하기 위해서 저렇게 접근했었는데 생각해보니 끝 공백이 한개가 아니라 여러개일 땐 저 방식이 좋지 않기 때문에 아예 입력과 변환된 answer 의 문자열의 길이를 비교해서 동일할 때까지 끝에 공백을 덧붙여주는 방식으로 변경하여 해결하였다.
[Python 프로그래머스] 전화번호 목록 - level2 [해시] 나의 풀이> 정말 쉽게 접근해서 그대로 가볍게 풀 수 있었던 문제였다. 우선 가장 길이가 작은 객체 shortest 를 뽑아두고 * 값이 가장 작은 걸 찾기 위해선 min() 디폴트 사용 / 길이를 기준으로 가장 작은 걸 찾고 싶다면 key 같이 사용이 포인트 나머지 값의 인덱스 0에 shortest 가 존재한다면, 바로 False 변환 및 반복문 break.
[Python 프로그래머스] 주식가격 - level2 [스택/큐] 나의 풀이 > 시도 1> : 이 입력 케이스는 [5,4,1,2,1,0] 이 바른 답 : 정확성은 통과했지만 효율성에서 1, 3번만 시간 초과였음 시도 2> : 이 소스로 수정 제출하여 효율성까지 통과 : 중간 for 문에서 list 에 기존 인덱스로 접근하는 방식이 아닌, 객체로 직접 가져오는 방식으로 해결 문제 이해가 어렵다거나 복잡한 문제가 아닌 단순한 문제여서 어렵지 않았던 문제였다. 그리고 역시 deque 를 활용하여 popleft 하고 리스트에 남은 값들을 쭉 검사하면서 복잡도를 줄이려고 한 것이 포인트였다.
[Python 프로그래머스] 올바른 괄호 - level2 (스킬 테스트) [연습 문제] 나의 풀이 > 눈으로 보면 간단하지만 효율적으로, 간결하게 짤 수 있는 방법이 뭘까 고민했던 문제. '(' 과 ')' 쌍이 이루어져야하기 때문에 ')' 로 시작하는데 '(' 과의 개수가 동일하거나 작으면 우선 False 출력. 이런 식으로 이해하고 조건문을 작성했다. 요즘 list 에서 맨 앞 인덱스를 뽑아내 처리하는 문제 풀이 방식에 맛이 들려 deque 를 list 와 함께 적절히 잘 사용해서 문제를 푸는 중이다.
[Python 프로그래머스] 2018 KAKAO BLIND RECRUITMENT - [1차] 다트 게임 programmers.co.kr/learn/courses/30/lessons/17682 코딩테스트 연습 - [1차] 다트 게임 programmers.co.kr 이번에도 카카오 level1 문제 도전. 나의 풀이 이 문제는 손으로 간단하게 계산하면 매우 쉬운데 정수로 끊고 연산을 해야한다는게 조금 번거로웠던 것 같다. 요즘 deque 를 많이 사용하고 있어서인지 이 문제도 list 로 접근해서 풀어보았다. 소스가 살짝 노가다스럽고 긴 느낌이 있지만 그래도 효율성 테스트까지 통과하였으니 업로드하기로 결정 ! 이 문제풀이 외에 다른 간단한 접근이 분명히 있을 것 같아서 고민해서 다른 풀이도 작성해보려고 한다. programmers.co.kr/learn/courses/30/lessons/17682/solutio..
[Python 프로그래머스] 2018 KAKAO BLIND RECRUITMENT - [1차] 비밀지도 https://programmers.co.kr/learn/courses/30/lessons/17681 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr 나의 풀이 리스트에서 자릿수가 나머지보다 작을 경우, 맨 왼쪽에 0을 채우는 zfill 함수와 1과 0을 각각 변환해주는 replace 사용만으로 충분히 쉽게 풀 수 있는 문제였다.
[Python 프로그래머스] 2019 카카오 개발자 겨울 인턴십 - 크레인 인형뽑기 게임 https://programmers.co.kr/learn/courses/30/lessons/64061 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr 나의 풀이 이 문제 역시 스택/큐를 활용하는 문제라고 생각되었다. 요즘 python deque 로 pop하는 알고리즘을 자주 접하게 되는 것 같은데, 이번 문제를 풀면서 numpy 까지 사용했었지만 내 뜻대로 해결되지 않아 deque를 적용해서 풀 수 있었다. 리스트 내에서 0 을 모두 제거하는 부분에서 remove 만으로 해결이 안돼서 모두 제거하는 함수를 활용한 점과 board 리스트..