본문 바로가기
728x90

문자열8

[PG/Python] 문자열 압축 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 📌 문제 접근 방법 처음엔 문자열 길이의 약수들로만 단위를 줬었는데, 테스트 케이스가 틀렸길래 꼭 나누어 떨어지지 않더라도 남은 문자열은 더해주면 된다고 문제에 적혀있어서 이 부분을 수정했다. 첫 번째 반복문에서 i는 1부터 len(s)-1까지를 순회한다. i가 문자열을 나누는 단위가 된다. 두 번째 반복문에서 j는 i부터 len(s)-1까지 i.. 2021. 11. 3.
[BOJ/Python] 5052. 전화번호 목록 📌 문제 https://www.acmicpc.net/problem/5052 5052번: 전화번호 목록 첫째 줄에 테스트 케이스의 개수 t가 주어진다. (1 ≤ t ≤ 50) 각 테스트 케이스의 첫째 줄에는 전화번호의 수 n이 주어진다. (1 ≤ n ≤ 10000) 다음 n개의 줄에는 목록에 포함되어 있는 전화번호가 www.acmicpc.net 📌 문제 접근 방법 처음에는 입력 받은 번호를 정렬시키고 하나씩 비교하면서 다른 숫자를 찾았다. 될 줄 알았는데 n이 10000까지 입력가능하니까 최악의 경우엔 1초를 넘긴다. 그래서 코드를 갈아엎었다! 인덱스를 초기에 0으로 설정해놓고 모든 문자열을 순회하면서 해당 인덱스의 값을 key로, 해당 문자열을 value로 해서 temp에 넣는다. temp의 value중.. 2021. 10. 30.
[Algorithm] 패턴 매칭 알고리즘 - KMP, 보이어-무어 고지식한 패턴 검색 알고리즘 (Brute Force) 본문 문자열을 처음부터 끝까지 차례대로 순회하면서 패턴 내의 문자들을 일일이 비교 시간 복잡도 O(MN) -> 최악의 경우 텍스트의 모든 위치 패턴 비교해야하므로 p = 'is' # 찾을 패턴 (target) M = len(p) t = 'This is a book~!' # 전체 텍스트 N = len(t) def BruteForce(p, t): i = 0 # t의 인덱스 j = 0 # p의 인덱스 while j < M and i < N: if t[i] != p[j]: i -= j j = -1 i += 1 j += 1 if j == M: return i - M # 검색성공 else: return -1 # 검색실패 카프-라빈 알고리즘 고지식한 패턴 검색 알.. 2021. 8. 22.
[Python] 변수, 자료형(숫자형, 문자열) - shift + enter : 코드 즉시 실행, 다음 코드 작성란 생성 - ctrl + enter : 다음 코드란 생성 없이 현재 코드만 실행 - 주석 #으로 표현 ctrl + / 으로 여러 줄을 한 번에 주석 처리할 수 있음 - 변수 변할 수 있는 수 데이터를 담을 수 있는 공간 변수 이름은 자유롭게 설정 가능 첫문자는 알파벳, 한글, underber(_)만 사용 가능, 예약어 사용 불가 id() 함수를 사용하여 메모리 주소 확인 가능 - 변수 선언하기 # 변수 선언하기 num = 3 print(num) a, b = 10, 15 print(a) print(b) print(a,b) c = d = 30 print(c) print(d) sum = a+b print(sum) [a, b] = ['python'.. 2021. 4. 25.
728x90