프로그래머스 알고리즘/Lv. 0 3

[프로그래머스 알고리즘] 문자열이 몇 번 등장하는지 세기

[ 프로그래머스 알고리즘 ] 문자열이 몇 번 등장하는지 세기나의 풀이# 슬라이딩 윈도우 사용# 외부 for loop 으로 N 번, 내부 for loopㅇ로 k 번 (상수)# 따라서 시간복잡도는 O(kN)def solution(myString, pat): answer = 0 # 몇번 등장했는지 count할 변수 초기화 pat_length = len(pat) # pat을 순회할 때 사용할 변수(소프트 코딩) # 슬라이딩 윈도우의 시작점이 이동하도록 하는 for loop for i in range(len(myString) - pat_length + 1): match = True # 슬라이딩 위도우의 시작점부터 하나씩 윈도우(pat)와 비..

[프로그래머스 알고리즘] ad 제거하기

[프로그래머스 알고리즘] ad 제거하기나의 풀이# 선형 검색 방법을 활용하여 각 원소에 "ad"가 포함되어 있는지 확인한다.# 시간 복잡도는 O(N)# 특정 문자가 포함되어 있는지는 in을 통해 확인할 수 있다.def solution(strArr): answer = [] condition = "ad" # 확인할 문자 for words in strArr: if condition not in words: # 포함 여부 확인 answer.append(words) # "ad" 미포함 원소만 저장 return answer다른 사람들의 풀이 또한 크게 차이가 나지 않는다.

[프로그래머스 알고리즘] 공백으로 구분하기 1

[프로그래머스 알고리즘] 공백으로 구분하기 1나의 풀이# my_string을 전체 한 번 순환하기 O(N)의 시간 복잡도를 갖는다.def solution(my_string): answer = [] start = 0 # 공백마다 시작 값을 업데이트하기 위한 변수 초기화 for i in range(len(my_string)): if my_string[i] == " ": # 시작 index부터 현재 index까지의 값을 answer에 저장. answer.append(my_string[start:i]) # 남은 값들을 비교하기 위해 시작 index를 "현재 index + 1"로 변환 start = i +..