분류 전체보기

    [Python] 커스텀 정렬 (cmp_to_key)

    sort()나 lambda 함수를 통한 정렬을 넘어서 좀 더 정교한 정렬이 필요할 때 커스텀으로 정렬 함수를 만들어서 이용할 수 있다. from functools import cmp_to_key data = ["Foo1Bar", "Foo12Bar", "Foo00012Bar", ..., "foo4bar"] def comp(x, y): # 두 대상 비교 후 [음수, 0, 양수] 중 하나 return # ex) if x[0]y[0] return 1 elif x[0] == y[0]: return 0 else: return -1 result = sorted(data, key = cmp_to_key(comp)) # 커스텀 정렬 수행 및 결과 return 좀 더 공부하기!! cf. [백준] 20210. 파일 탐색기 ..

    [Python] 정규표현식(re)으로 string에서 문자, 숫자 분리하기

    import re text = "Foo00012Bar" tmp1 = re.findall("[a-zA-Z]|\d+", text) # '\' : 이스케이프문자(명령어) print(tmp1) tmp2 = re.findall("[a-zA-Z]+|\d+", text) print(tmp2) tmp3 = re.findall("[a-zA-Z]+", text) print(tmp3) tmp4 = re.findall("\d+", text) print(tmp4) tmp5 = re.findall("\d", text) print(tmp5) ''' tmp1 : ['F', 'o', 'o', '00012', 'B', 'a', 'r'] tmp2 : ['Foo', '00012', 'Bar'] tmp3 : ['Foo', 'Bar'] tmp..

    [백준] 20437. 문자열 게임 2

    [백준] 20437. 문자열 게임 2

    📌문제 20437번: 문자열 게임 2 첫 번째 문자열에서 3번에서 구한 문자열은 aqua, 4번에서 구한 문자열은 raquator이다. 두 번째 문자열에서는 어떤 문자가 5개 포함된 문자열을 찾을 수 없으므로 -1을 출력한다. www.acmicpc.net 🎖️난이도 ✔️풀이 # 정답 import sys input = sys.stdin.readline from collections import defaultdict t = int(input()) for _ in range(t): w = input() k = int(input()) answer1, answer2 = 10000, 0 # INF 필요 X. 문제 조건 활용! if k == 1: print(1, 1) continue # k개 이상 있는 문자만 idx..

    [백준] 17609. 회문

    [백준] 17609. 회문

    📌문제 17609번: 회문 각 문자열이 회문인지, 유사 회문인지, 둘 모두 해당되지 않는지를 판단하여 회문이면 0, 유사 회문이면 1, 둘 모두 아니면 2를 순서대로 한 줄에 하나씩 출력한다. www.acmicpc.net 🎖️난이도 ✔️풀이 n = int(input()) def isPalindrome(string): if string == string[::-1]: return True else: return False def isPseudo(string): for i in range(len(string)//2): if string[i] != string[len(string)-i-1]: str1, str2 = string.copy(), string.copy() # **깊은복사** str1.pop(i) st..

    [백준] 17413. 단어 뒤집기 2

    [백준] 17413. 단어 뒤집기 2

    📌문제 17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 www.acmicpc.net 더보기 🎖️난이도 ✔️풀이 string = input() answer = "" # 빌때까지 잘라내기 while string: if string[0] == '': answer += string[:i+1] string = string[i+1:] break elif string[0] == ' ': answer += ' ' string = string[1:] else: # 반대로 뒤집기 for i in range(len(string..