티스토리 뷰

728x90

 

 

 

[ 코딩 테스트 연습 ]

 

 

 

21. 특정 문자 제거하기 

  • 문자열 my_string과 문자 letter이 매개변수로 주어집니다. my_string에서 letter를 제거한 문자열을 return하도록 solution 함수를 완성해주세요.
  • 제한사항
    • 1 ≤ my_string의 길이 ≤ 100
    • letter은 길이가 1인 영문자입니다.
    • my_string과 letter은 알파벳 대소문자로 이루어져 있습니다.
    • 대문자와 소문자를 구분합니다.
  • 내가 푼 풀이
def solution(my_string, letter):
    a = my_string.split(letter)
    return ''.join(a)

result = solution("abcdef", "f")
print(result) #출력 : abcde

 

  • 다른 사람의 풀이
def solution(my_string, letter):
    return my_string.replace(letter, '')

result = solution("abcdef", "f")
print(result) #출력 : abcde
  • replace() 메서드는 문자열 안에 있는 모든 특정 문자를 다른 문자로 대체한다. 특정 문자를 제거하려면 빈 문자열로 대체하면 된다.
def solution(my_string, letter):
    answer = ''
    for i in my_string:
        if i != letter:
            answer += i
    return answer

result = solution("abcdef", "f")
print(result) #출력 : abcde
def solution(my_string, letter):
    return "".join([s for s in my_string if s != letter])

result = solution("abcdef", "f")
print(result) #출력 : abcde

 

📌 remove 함수는 숫자에만 적용되고 문자열에는 적용되지 않는다. : 회의하여 조원분이 알려줌!ㅎㅎ

 

 

 

 

 

 

 

 

 

 

22.  아이스 아메리카노  

  • 머쓱이는 추운 날에도 아이스 아메리카노만 마십니다. 아이스 아메리카노는 한잔에 5,500원입니다. 머쓱이가 가지고 있는 돈 money가 매개변수로 주어질 때, 머쓱이가 최대로 마실 수 있는 아메리카노의 잔 수와 남는 돈을 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.
  • 제한사항 : 0 < money ≤ 1,000,000
  • 내가 푼 풀이
def solution(money):
    americano_price = 5500
    cups = money // americano_price # //나누기 정수값
    Changes = money - (cups * americano_price)
    return [cups, Changes]

result = solution(15000)
print(result) #출력 : [2, 4000]

 

  • 다른 사람의 풀이 
def solution(money):
    return [money // 5500, money % 5500] # %는 나눈 나머지값

result = solution(15000)
print(result) #출력 : [2, 4000]

 

 

 

 

 

 

 

 

 

 

 

23.  피자 나눠 먹기   (1)

  • 머쓱이네 피자가게는 피자를 일곱 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 주어질 때, 모든 사람이 피자를 한 조각 이상 먹기 위해 필요한 피자의 수를 return 하는 solution 함수를 완성해보세요.
  • 제한사항 : 0 < money ≤ 100
  • 내가 푼 풀이
def solution(n):
    i = n / 7
    if i != int(i):
        return int(i) + 1
    else:
        return i

result = solution(15)
print(result) #출력 : 3

 

  • 다른 사람의 풀이
def solution(n):
    answer = n//7
    if n%7 != 0:
        answer +=1

    return answer
def solution(n):
    answer = 0

    if (n%7) == 0:
        answer = int(n/7)
    else:
        answer = int(n/7)+1

    return answer
def solution(n):
    answer = n // 7 + (n % 7 > 0) #
    return answer
def solution(n):
    return (n - 1) // 7 + 1

 

 

 

 

 

 

 

 

 

 

24.  피자 나눠 먹기 (2)  

  • 머쓱이네 피자가게는 피자를 두 조각에서 열 조각까지 원하는 조각 수로 잘라줍니다. 피자 조각 수 slice와 피자를 먹는 사람의 수 n이 매개변수로 주어질 때, n명의 사람이 최소 한 조각 이상 피자를 먹으려면 최소 몇 판의 피자를 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요.
  • 제한사항 :
    • 2 ≤ slice ≤ 10
    • 1 ≤ n ≤ 100
  • 내가 푼 풀이
def solution(slice, n):
    i = n / slice
    if i != int(i):
        return int(i) + 1
    else:
        return i

result = solution(4, 12)
print(result) #출력 3

 

  • 다른 사람의 풀이 
def solution(slice, n):
    return ((n - 1) // slice) + 1 # n-1//slice<1일 때 결과값이 0이 되는걸 방지

result = solution(4, 12)
print(result) #출력 : 3

 

 

 

 

 

 

 

 

 

 

25.  최대값 만들기 

  • 정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.
  • 제한사항 :
    • 0 ≤ numbers의 원소 ≤ 10,000
    • 2 ≤ numbers의 길이 ≤ 100
  • 내가 푼 풀이
def solution(numbers):
    max_1 = max(numbers)
    numbers.remove(max_1)
    max_2 = max(numbers)
    return max_1 * max_2

numbers = [1,2,3,4,5]

result = solution(numbers)
print(result) #출력 20

 

  • 다른 사람의 풀이
def solution(numbers):
    numbers.sort()
    return numbers[-2] * numbers[-1]

numbers = [1,2,3,4,5]

result = solution(numbers)
print(result) #출력 20
  • numbers.sort()는 리스트 numbers의 원소들을 오름차순으로 정렬한다. 정렬된 리스트에서 마지막 두 개의 원소를 곱하여 반환하는 코드인 numbers[-2] * numbers[-1]에서 numbers[-2]는 두 번째로 큰 원소를, numbers[-1]는 가장 큰 원소를 의미함

 

 

 

 

 

 

 

 

26.  배열 두 배 만들기 

  • 정수 배열 numbers가 매개변수로 주어집니다. numbers의 각 원소에 두배한 원소를 가진 배열을 return하도록 solution 함수를 완성해주세요.
  • 제한사항 :
    • -10,000 ≤ numbers의 원소 ≤ 10,000
    • 1 ≤ numbers의 길이 ≤ 1,000
  • 내가 푼 풀이
def solution(numbers):
    return [i * 2 for i in numbers]

result = solution(numbers=[1,2,3,4,5])
print(result) #출력 [2, 4, 6, 8, 10]

 

  • 다른 사람의 풀이
def solution(numbers):
    return list(map(lambda x: x * 2, numbers))

 

 

 

 

 

 

 

 

 

 

27.  짝수 홀수 개 수 

  • 정수가 담긴 리스트 num_list가 주어질 때, num_list의 원소 중 짝수와 홀수의 개수를 담은 배열을 return 하도록 solution 함수를 완성해보세요.
  • 제한사항 :
    • 1 ≤ num_list의 길이 ≤ 100
    • 0 ≤ num_list의 원소 ≤ 1,000
  • 내가 푼 풀이
def solution(num_list):
    even = 0
    odd = 0
    for num in num_list:
        if num % 2 == 0:
            even +=1
        else:
            odd +=1

    return [even, odd]

result = solution(num_list=[1,2,3,4,5])
print(result)  #출력 : [2, 3]

 

  • 다른 사람의 풀이
def solution(num_list):
    answer = [0,0]
    for n in num_list:
        answer[n%2]+=1
    return answer

result = solution(num_list=[1,2,3,4,5])
print(result) #출력 : [2, 3]
  • answer는 리스트 형태의 변수로, 그 내부에는 두 개의 정수가 들어가 있습니다. 이 리스트의 첫 번째 요소는 홀수의 개수를 나타내고, 두 번째 요소는 짝수의 개수를 나타낸다. 이때  n을 2로 나눈 나머지가 0이라면, 이는 n이 짝수임을 의미해 answer[1]에 1을 더해준다. 반대로, n을 2로 나눈 나머지가 1이라면, 이는 n이 홀수임을 의미해 answer[0]에 1을 더해준다.

 

 

 

 

 

 

 

 

28.  자릿수 더하기 

  • 정수 n이 매개변수로 주어질 때 n의 각 자리 숫자의 합을 return하도록 solution 함수를 완성해주세요
  • 제한사항 : 0 ≤ n ≤ 1,000,000
  • 내가 푼 풀이
def solution(n):
    i = str(n)  #문자로 변환
    num = 0
    for a in i:
        num += int(a) #다시 숫자로 변환하여 합한다
    return num

result = solution(1234)
print(result) #출력 : 10

 

  • 다른 사람의 풀이
def solution(n):
    return sum(int(i) for i in str(n))

result = solution(1234)
print(result) #출력 : 10

 

 

 

 

 

 

 

 

 

29.  배열의 유사도

  • 두 배열이 얼마나 유사한지 확인해보려고 합니다. 문자열 배열 s1 s2가 주어질 때 같은 원소의 개수를 return하도록 solution 함수를 완성해주세요.
  • 제한사항 :
    • 1 ≤ s1, s2의 길이 ≤ 100
    • 1 ≤ s1, s2의 원소의 길이 ≤ 10
    • s1과 s2의 원소는 알파벳 소문자로만 이루어져 있습니다
    • s1과 s2는 각각 중복된 원소를 갖지 않습니다.
  • 내가 푼 풀이
def solution(s1, s2):
    answer = 0
    for i in s1:
        if i in s2: 
        answer += 1
    return answer

result = solution(['a','b','c'],['com', "b", "d", "p", "c"])
print(result) #출력 : 2
  • 다른 사람의 풀이
def solution(s1, s2):
    return len(set(s1)&set(s2));

result = solution(['a','b','c'],['com', "b", "d", "p", "c"])
print(result) #출력 : 2
  •  set() 함수는 중복된 요소를 제거하고 유일한 요소만 남긴 집합(set)리스트 생성한다.& ' 연산자를 사용하여 두 집합의 교집합을 구하고, len() 함수로 그 교집합의 길이(즉, 공통된 문자의 개수)를 반환한다.

 

 

 

 

 

 

 

 

30.  양꼬치 

  • 머쓱이네 양꼬치 가게는 10인분을 먹으면 음료수 하나를 서비스로 줍니다. 양꼬치는 1인분에 12,000원, 음료수는 2,000원입니다. 정수 n k가 매개변수로 주어졌을 때, 양꼬치 n인분과 음료수 k개를 먹었다면 총얼마를 지불해야 하는지 return 하도록 solution 함수를 완성해보세요.
  • 제한사항 :
    • 0 < n < 1,000
    • n / 10 ≤ k < 1,000
    • 서비스로 받은 음료수는 모두 마십니다.
  • 내가 푼 풀이
def solution(n, k):
    # 10인분 먹으면 음료수 1개 서비스
    return (n * 12000) + (k * 2000) - (n//10 *2000) # n//10은 정수

result = solution(10, 3)
# 양꼬치 n 인분, 음료수 k 개
print(result) #출력 : 124,000

 

  • 다른 사람의 풀이도 비슷함

 

 

 

 

 

반응형
반응형
TAG
more
최근에 올라온 글