본문 바로가기
반응형

전체 글181

[Programmers] Python 신규 아이디 추천 https://programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr [전체코드] import re def solution(new_id): #step 1 new_id = new_id.lower() #step 2 new_id = re.sub(r'[^0-9a-z-_.]', '', new_id) #step 3 while new_id.find("..") != -1: new_id = new_id.replace("..", ".") #.. 2022. 6. 21.
[Programmers] Python N개의 최소공배수 https://programmers.co.kr/learn/courses/30/lessons/12953 코딩테스트 연습 - N개의 최소공배수 두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배 programmers.co.kr import math def solution(arr): for i in range(max(arr), math.prod(arr)+1): for j in range(len(arr)): if i % arr[j] != 0: break elif j == len(arr)-1: return i 2022. 6. 21.
[Programmers] Python 문자열 압축 https://programmers.co.kr/learn/courses/30/lessons/60057?language=python3 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr def solution(s): min = len(s) for i in range(1, len(s)): cnt = 1 words = [s[j:j+i] for j in range(0,len(s),i)] words.append('') new_s = '' for j in range(1, len(words)): if words[j] .. 2022. 6. 21.
[Programmers] Python 짝지어 제거하기 https://programmers.co.kr/learn/courses/30/lessons/12973?language=python3 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr def solution(s): stack = [] for i in range(len(s)): if len(stack) != 0 and stack[-1] == s[i]: stack.pop() else: stack.append(s[i]) return 1 if len(stack) == 0 else 0 2022. 6. 18.
[Programmers] Python 숫자 문자열과 영단어 https://programmers.co.kr/learn/courses/30/lessons/81301?language=python3 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr def solution(s): num = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"] for i in range(10): s = s.replace(num[i] , str(i)) return int(s) 2022. 6. 18.
[Programmers] Python 카펫 https://programmers.co.kr/learn/courses/30/lessons/42842?language=python3 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 programmers.co.kr 1. 갈색의 개수 = 2 * (가로+세로-2) 2. 노란색의 개수 = (가로-2) * (세로-2) 1번식을 재조합하면, (가로+세로) = (갈색의 개수) / 2 + 2 이때, 가로가 세로보다 길거나 같다고 가정했으므로 가로를 (갈색의 개수) / 2 + 2로, 세로를 0으로 세팅한 뒤 2번식을 만족할 때까지 값을 하나씩 늘리고 빼.. 2022. 6. 15.
[Programmers] Python K번째수 https://programmers.co.kr/learn/courses/30/lessons/42748?language=python3 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr def solution(array, commands): return [sorted(array[a-1:b])[c-1] for a,b,c in commands] 2022. 6. 15.
[Programmers] Python 완주하지 못한 선수 https://programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr collections의 Counter() 함수를 사용하여 리스트의 차집합을 구한 후 미완주자의 명단을 쉽게 확인 할 수 있다. from collections import Counter def solution(participant, completion): return list((Counter(participant)-Counter(completi.. 2022. 6. 14.
[Programmers] Python JadenCase 문자열 만들기 https://programmers.co.kr/learn/courses/30/lessons/12951 코딩테스트 연습 - JadenCase 문자열 만들기 JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고 programmers.co.kr 1. s.split(" ") 2. for문으로 각 단어를 capitalize() 한 뒤 리스트화 3. " ".join() 함수를 사용하여 리스트를 문자열로 변환 def solution(s): return " ".join([word.capitalize() for word in s.split(" ")]) 주의할 점 1) 공백문.. 2022. 6. 14.
반응형