✅ 오늘 한 것
알고리즘 문제
✏️ 오늘 배운 점
def solution(t, p):
t1 = len(t)
p1 = len(p)
result = 0
for i in range(t1 - p1 + 1):
if int(t[i:i+p1]) <= int(p):
result += 1
return result
문자열 t 안에서 문자열 p와 같은 길이를 가진 부분문자열을 추출하여 부분문자열이 나타내는 수가 p가 나타내는 수보다 작거나 같은 경우의 수마다 1씩 추가하여 전체 결과를 반환하는 코드 문제였다.
t와 p의 길이를 확인하여 p와 같은 길이만큼 슬라이싱처리하여 if문으로 수의 크고 작음을 비교하여 1씩 추가할 수 있었다.
문자열을 슬라이싱(t[i:i+p1])하고, 정수형으로 변환해 비교하는 점이 핵심이었다.
def solution(n):
result = 0
for i in range(1, n+1):
count = 0
for j in range(1, i+1):
if i % j == 0:
count += 1
if count >= 3:
result += 1
return result
for i in range(1, n+1): 을 통해 n 이하의 수를 모두 확인하고 for j in range(1, i+1): 를 통해 각 수 i에 대해 약수의 개수를 확인하여 약수의 개수가 3개 이상이면 1씩 추가하여 n까지 확인 이후 합성수의 개수를 반환할 수 있는 코드를 작성하였다.
def solution(my_string):
result = ''
for i in range(len(my_string)):
if my_string[i] not in result:
result += my_string[i]
return result
my_string의 각각의 문자열을 하나하나 확인하며 result에 포함되어 있지 않다면 추가하는 방식으로 중복없이 구성된 문자열을 반환하는 코드를 작성하였다.
✏️ 오늘의 핵심
문자열을 슬라이싱하여 정수형으로 변환하고 비교하는 과정에서 자료형 변환의 중요성을 다시 한 번 확인했으며, 중첩 반복문을 통해 약수의 개수를 세어 합성수를 판별하는 로직을 직접 구현하면서 반복 구조의 흐름을 체득할 수 있었다.
문자열 내 중복 제거 문제를 통해 not in 조건을 활용하여 고유한 문자만 남기는 방법을 익혔다.
📌추가로 해야할 점
알고리즘 문제, 새로운 그룹화로 데이터 분석 및 전처리