상세 컨텐츠

본문 제목

코딩테스트 03

코딩테스트

by 넨! 2025. 1. 12. 22:00

본문

삼각형의 완성조건 (1)

선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다.

  • 가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다.

삼각형의 세 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다. 세 변으로 삼각형을 만들 수 있다면 1, 만들 수 없다면 2를 return하도록 solution 함수를 완성해주세요.


제한사항

  • sides의 원소는 자연수입니다.
  • sides의 길이는 3입니다.
  • 1 ≤ sides의 원소 ≤ 1,000
def solution(sides):
    sides.sort() #오름차순 배열
    if sides[0]+sides[1]>sides[2]:
        return 1
    else:
        return 2
def solution(sides):
    sides.sort()
    return 1 if sides[0]+sides[1]>sides[2] else 2

 

 

문자 반복 출력하기

문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string에 들어있는 각 문자를 n만큼 반복한 문자열을 return 하도록 solution 함수를 완성해보세요.


제한사항

  • 2 ≤ my_string 길이 ≤ 5
  • 2 ≤ n ≤ 10
  • "my_string"은 영어 대소문자로 이루어져 있습니다.
def solution(my_string, n):
    answer = '' #빈 문자열 생성
    for x in my_string: #각 문자에 대한 반복을 실행
        answer = answer+(x*n) #문자열 계산
    return answer
def solution(my_string, n):
    return ''.join(char * n for char in my_string)

 

짝수 홀수 개수

정수가 담긴 리스트 num_list가 주어질 때, num_list의 원소 중 짝수와 홀수의 개수를 담은 배열을 return 하도록 solution 함수를 완성해보세요.


제한사항

  • 1 ≤ num_list의 길이 ≤ 100
  • 0 ≤ num_list의 원소 ≤ 1,000
def solution(num_list):
    even = 0
    odd = 0
    for x in num_list:
        if x%2 == 0:
            even += 1
        else:
            odd += 1
        
    return [even, odd]
def solution(num_list):
    return [len([x for x in num_list if x % 2 == 0]), 
            len([x for x in num_list if x % 2 == 1])]
#sum()

def solution(num_list):
    even = sum(1 for x in num_list if x % 2 == 0)
    return [even, len(num_list) - even]
#count()

def solution(num_list):
    even = sum(1 for x in num_list if x % 2 == 0)
    odd = sum(1 for x in num_list if x % 2 == 1)
    return [even, odd]

 

 

순서쌍의 개수

def solution(n):
    answer = 0
    for x in range(1,n+1):
        if n % x == 0:
            answer = answer+1
    return answer
def solution(n):
    return len([i for i in range(1, n + 1) if n % i == 0])

 

 

배열의 유사도

def solution(s1, s2):
    answer = 0
    for element in s1:
        if element in s2:
            s2.remove(element) #매칭 원소 제거
            answer += 1
    return answer
def solution(s1, s2):
    return len([x for x in s1 if x in s2])
#set 교집합

def solution(s1, s2):
    return len(set(s1) & set(s2))

 

 

문자열 안에 문자열

#in

def solution(str1, str2):
    return 1 if str2 in str1 else 2
#find()

def solution(str1, str2):
    return 1 if str1.find(str2) != -1 else 2
#count()

def solution(str1, str2):
    return 1 if str1.count(str2) > 0 else 2
def solution(str1, str2):
    if str2 in str1:
        return 1
    else:
        return 2

 

 

중복된 숫자 개수

def solution(array, n):
    answer = 0
    for x in array:
        if x == n:
            answer += 1
    return answer

 

 

배열 두 배 만들기

def solution(numbers):
    answer = []
    for x in numbers:
        answer.append(x*2)
    return answer

 

 

중앙값 구하기

def solution(array):
    array.sort()
    location = 0
    mid = 0
    if len(array)%2==0:
        location = len(array)//2
        mid = (array[location-1]+array[location])/2
        return mid
    else:
        location = len(array)//2
        mid = array[location]
        return mid
def solution(array):
    array = sorted(array)
    return array[len(array)//2]

 

 

짝수는 싫어요

def solution(n):
    answer = []
    for x in range(1,n+1):
        if x%2!=0:
            answer.append(x)
    return answer

 

'코딩테스트' 카테고리의 다른 글

프로그래머스 코딩테스트 02  (1) 2025.01.10
프로그래머스 코딩테스트 01  (0) 2025.01.09

관련글 더보기