본문 바로가기
알고리즘 풀이

[알고리즘] 프로그래머스 | 문자열 다루기, 없는 숫자 더하기, x만큼 간격이 있는 n개의 숫자

by 째깍단 2023. 8. 4.

문자열 다루기
https://school.programmers.co.kr/learn/courses/30/lessons/12918

 

답: 

더보기
def solution(s):
    if (len(s) == 4 or len(s) == 6) and s.isdecimal():
        return True        
    return False

** isdecimal()을 써봤지만 isdigit도 잘 작동한다

 

 

문제 분석 및 해석

s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수 작성하기



 

사용한 함수와 관련 함수

 

is_alpha() 알파벳으로만 구성되어있는지 판별

isdecimal() 문자열이 int로 변환 가능한지 판별

isdigit() 문자열이 숫자의 형태인지

isnumeric() 문자열이 숫자값을 표현하는 형태인지 판별

isalnum() 문자열이 알파벳과 숫자로만 이루어졌는지 판별(식별은 isnumeric 메서드 기준)

 

 


없는 숫자 더하기
https://school.programmers.co.kr/learn/courses/30/lessons/86051

 

답: 

더보기
zerotonine = [0,1,2,3,4,5,6,7,8,9]

def solution(numbers):
    answer = list(set(zerotonine) - set(numbers) )
    return sum(answer)

 

 

문제 분석 및 해석

0부터 9까지의 숫자 일부가 들어있는 정수 배열 numbers

numbers에서 찾을 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return

 

 

 

공부

"set" 집합. 순서가 없고 중복을 허용하지 않음.

set에 새 요소를 add로 추가, remove로 제거가 가능
중복값은 추가되지 않으며, 없는 값을 삭제하면 오류남

array의 중복요소를 지울 때,
교집합 차집합 합집합 여집합을 구할 때 유용하게 사용할 수 있다

 

 


x만큼 간격이 있는 n개의 숫자

https://school.programmers.co.kr/learn/courses/30/lessons/12954

답: 

더보기
def solution(x, n):
    answer = []
    for i in range(1, n+1):
        answer.append((i*x))
    return answer

 

def solution(x, n):
    answer = []
    if x < 0:
        for i in range(x, (x*n-1), x):
            print(i)
            answer.append(i)
    else:
        for i in range(x, (x*n+1), x):
            answer.append(i)
    return answer

 

 

문제 분석 및 해석

x부터 시작해 x 증가하는 숫자를 n 지니는 리스트를 리턴