알고리즘56 [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. [Programmers] 예산 programmers.co.kr/learn/courses/30/lessons/12982 코딩테스트 연습 - 예산 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 programmers.co.kr 처음엔 배열 d의 모든 가능한 조합을 탐색해야 하는 줄 알고 고민했는데, 배열을 정렬한 후 반복문으로 요소의 합을 구해서 budget을 초과하기 전까지의 개수를 반환하면 되는 거였다..! 주어진 배열을 문제에 적합하게 바꿔서 생각하면 쉬운 문제였는데, 주어진 조건 그대로만 생각해서 어렵게 접근했다. 연습을 많이 해서 좀 더 유연하게 생각할 수 있게 해야겠다. Java static.. 2021. 5. 6. [Programmers] 문자열 내 p와 y의 개수 programmers.co.kr/learn/courses/30/lessons/12916 코딩테스트 연습 - 문자열 내 p와 y의 개수 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 programmers.co.kr Java public class Solution { static boolean solution(String s) { s = s.toLowerCase(); int pCnt = 0; int yCnt = 0; for (int i = 0; i < s.length(); i++) { if (s.charAt(i) ==.. 2021. 2. 2. 이전 1 2 3 4 5 ··· 12 다음