▷ 코드카타

[내일배움캠프 _ QA/QC 5기] 29일차 _ 코드카타 39~40문항

qc-standard 2026. 4. 16. 09:58

⊙ 코드카타

39) 문제 : 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.

제한 조건

: arr은 길이 1 이상인 배열입니다.
: 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다.

생각 과정 :


#39
def solution(arr):
    #1
    min_value = min(arr)
   
    #2
    arr.remove(min_value)
   
    #3
    if len(arr) == 0:
        return [-1]
    else:
        return arr



result = solution([4,3,2,1])
print(result)
result = solution([10])
print(result)
   
   # 1
   # 가장 작은 숫자가 무엇인지 찾아서 변수에 담는다
   
   # 2
   # 그 최솟값을 배열에서 제거

   
# 3
   # 만약 하나를 지웠더니 배열이 비어버렸다면 [-1]을 리
   # 그외(비어있지 않다면)는 지우고 남은 배열을 리턴

 

 

 

40) 문제 : 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.

생각 과정 :


#40
def solution(n):
    temp = ""
   
    # 1
    while n > 0:
        # 1-1
        # 1 ex
        temp += str(n % 3)
        n = n // 3  #
   
    # 2
    return int(temp, 3)



result = solution(45)
print(result)

result = solution(125)
print(result)
   
   # 1
   # 3진법으로 바꾸면서 동시에 뒤집기

    # 1-1
   # 나머지를 구해서 문자열에 붙입니다.

   
   
# 1 ex
   # n이 45면 나머지가 0 -> 0 -> 2 -> 1 순서로 붙어서 "0021"이 됨
      
   
#
   # 3으로 나눈 몫으로 업데이트
   
   # 2
   # 뒤집힌 3진법(temp)을 다시 10진법으로 변환
    # int("문자열", 3)은 "이 문자열은 3진법이니까 10진법으로 바꿔줘"라는 뜻