본문 바로가기

PYTHON57

[Python] 백준 5397번 - 키로거 https://www.acmicpc.net/problem/5397 5397번: 키로거 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한줄로 이루어져 있고, 강산이가 입력한 순서대로 길이가 L인 문자열이 주어진다. (1 ≤ L의 길이 ≤ 1,000,000) 강산이가 백스페이 www.acmicpc.net Python - 처음 코드 test_case = int(input()) result = [] for i in range(test_case): pw = list(input()) left = [] right = [] for p in pw: if p == '-': if len(left) ': if len(right) < 1: co.. 2021. 7. 21.
[카카오] 2021 신입공채 1차 코딩테스트 - 메뉴 리뉴얼 from itertools import combinations from collections import Counter def solution(orders, course): answer = [] for i in course: candidates = [] for menu_li in orders: for li in combinations(menu_li, i): res = ''.join(sorted(li)) candidates.append(res) sorted_candidates = Counter(candidates).most_common() answer += [menu for menu, cnt in sorted_candidates if cnt > 1 and cnt == sorted_candidates[0][.. 2021. 6. 23.
[카카오] 2021 신입공채 1차 코딩테스트 - 아이디 추천 카카오 테크 블로그 해설에서도 이 문제는 몸풀기 문제 수준으로, 각 단계에 맞게 문자열을 거르면 된다고 나와 있다. import re def solution(new_id): # 1단계 result = new_id.lower() # 2단계 result = re.sub('[^0-9a-z-_.]', '', result) # 3단계 while '..' in result: result = result.replace('..', '.') # 4단계 result = result.strip('.') # 5단계 if len(result) == 0: result = 'a' # 6단계 if len(result) >= 16: result = result[:15] result = result.rstrip('.') # 7단계 wh.. 2021. 6. 22.
[알고리즘] 삽입 정렬(insertion sort) # insertion sort def insertion_sort(data): for idx1 in range(len(data) - 1): # 처음에 range(idx1 + 1, len(data) - 1)로 적었다. for idx2 in range(idx1 + 1, 0, -1): if data[idx2] < data[idx2 - 1]: # 이 부분은 swap이 아니라 data[idx2] = data[idx2 - 1]로 적었다. data[idx2], data[idx2 - 1] = data[idx2 - 1], data[idx2] else: break return data import random data = random.sample(range(100), 10) print(insertion_sort(data)).. 2021. 6. 21.
[알고리즘] 선택 정렬(selection sort) # selection sort def selection_sort(data): for stand in range(len(data) - 1): lowest = stand for idx2 in range(stand + 1, len(data)): if data[idx2] < data[lowest]: lowest = idx2 data[stand], data[lowest] = data[lowest], data[stand] return data import random data = random.sample(range(100), 10) print(selection_sort(data)) 2021. 6. 21.