티스토리 뷰

728x90

 

 

[ 코딩 테스트 연습 ]

 

 

 

11. 배열의 평균

  • 정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소의 평균값을 return하도록 solution 함수를 완성해주세요.
  • 제한사항
    • 0 ≤ numbers의 원소 ≤ 1,000
    • 1 ≤ numbers의 길이 ≤ 100
    • 정답의 소수 부분이 .0 또는 .5인 경우만 입력으로 주어집니다.
  • 내가 푼 풀이
number = [1,2,3,4,5,6,7,8,9,10]
def solution(a):
    total = sum(a)
    return total / len(a)

result = solution(number)
print(result)  # 출력: 5.5

 

  • 다른 사람의 풀이
import numpy as np
def solution(numbers):
    return np.mean(numbers)
  • 위 코드에서 np.mean(numbers)는 주어진 리스트 numbers의 평균을 계산합니다. np.mean() 함수는 numpy 모듈에 포함되어 있으며, 리스트의 평균값을 쉽게 계산할 수 있도록 해줍니다. 그런데 내 프로그램에서는 numpy 함수를 찾을 수 없다면서 실행되지 않음.  NumPy(넘파이)는 파이썬에서 과학적 계산을 수행하는 데 사용되는 핵심 라이브러리 중 하나인데 내 프로그램에 라이브러리가 없는 것 같음. NumPy는 다차원 배열을 다루는 기능과 선형 대수, 푸리에 변환, 난수 발생기 등의 함수를 제공하여 과학적 계산이나 데이터 분석에 매우 유용하다.
number = [1,2,3,4,5,6,7,8,9,10]

import statistics
def solution(numbers):
    answer = 0
    return statistics.mean(numbers)

result = solution(number)
print(result)  # 출력: 5.5
  • statistics.mean(numbers): 이 코드는 statistics 모듈의 mean() 함수를 사용하여 주어진 리스트 numbers의 평균값을 계산합니다. mean() 함수는 주어진 데이터의 평균을 계산하여 반환합니다.

 

 

 

 

 

 

 

 

12. 머쓱이보다 키 큰 사람

  • 머쓱이는 학교에서 키 순으로 줄을 설 때 몇 번째로 서야 하는지 궁금해졌습니다. 머쓱이네 반 친구들의 키가 담긴 정수 배열 array와 머쓱이의 키 height가 매개변수로 주어질 때, 머쓱이보다 키 큰 사람 수를 return 하도록 solution 함수를 완성해보세요.
  • 제한사항
    • 1 ≤ array의 길이 ≤ 100
    • 1 ≤ height ≤ 200
    • 1 ≤ array의 원소 ≤ 200
  • 내가 푼 풀이
def solution(lst, target):
    count = 0
    for i in lst:
        if i > target:
            count += 1
    return count

array = [149,180,192,170]

result = solution(array, 167)
print(result) #출력 : 3

 

  • 다른 사람의 풀이 
def solution(array, height):
    return sum(1 for a in array if a > height)

array = [149,180,192,170]

result = solution(array, 167)
print(result) #출력 : 3
def solution(array, height):
    array.append(height)
    array.sort(reverse=True)
    return array.index(height)

array = [149,180,192,170]

result = solution(array, 167)
print(result) #출력 : 3
  • 주어진 리스트에 height 을 추가한 뒤에 리스트를. reverse=True 옵션을 주어서 내림차순으로 정렬한다. 그 다음  새로운 요소인 height의 인덱스를 반환합니다. index() 메서드는 리스트에서 특정 요소의 첫 번째 위치를 반환합니다. 따라서 이 코드는 새로운 요소 height의 인덱스를 반환합니다.

 

 

 

 

 

 

 

 

 

13. 배열 원소의 길

  • 문자열 배열 strlist가 매개변수로 주어집니다. strlist 각 원소의 길이를 담은 배열을 retrun하도록 solution 함수를 완성해주세요.
  • 제한사항
    • 1 ≤ strlist 원소의 길이 ≤ 100
    • strlist는 알파벳 소문자, 대문자, 특수문자로 구성되어 있습니다.
  • 내가 푼 풀이
def solution(strlist):
    answer = []
    for i in strlist:
        answer.append(len(i))
    return answer

strlist = ["I", "Love", "Programmers."]

result = solution(strlist)
print(result) #출력 : [1,4,12]

 

  • 다른 사람의 풀이 
def solution(strlist):
    return [len(str) for str in strlist]

 

 

 

 

 

 

 

 

 

14. 배열 뒤집기 

  • 정수가 들어 있는 배열 num_list가 매개변수로 주어집니다. num_list의 원소의 순서를 거꾸로 뒤집은 배열을 return하도록 solution 함수를 완성해주세요.
  • 제한사항
    • 1 ≤ num_list의 길이 ≤ 1,000
    • 0 ≤ num_list의 원소 ≤ 1,000
  • 내가 푼 풀이 : reversed () 가 순서를 뒤집는 함수
def solution(num_list):
    return list(reversed(num_list))

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

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

 

  • 다른 사람의 풀이 [::-1]은 리스트의 모든 요소를 역순으로 가져오는 슬라이싱 기법입니다. 예를 들어, num_list[1, 2, 3, 4, 5]라면, num_list[::-1][5, 4, 3, 2, 1]을 반환합니다.

 

 

 

 

 

 

 

 

15. 중복된 숫자 개수

  • 정수가 담긴 배열 array와 정수 n이 매개변수로 주어질 때, array n이 몇 개 있는 지를 return 하도록 solution 함수를 완성해보세요.
  • 제한사항
    • 1 ≤ array의 길이 ≤ 100
    • 0 ≤ array의 원소 ≤ 1,000
    • 0 ≤ n ≤ 1,000
  • 내가 푼 풀이
def solution(array, n):
    answer = 0
    for i in array:
        if i == n:
            answer += 1
    return answer

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

result = solution(array, 1)
print(result) #출력 : 2

 

  • 다른 사람의 풀이
def solution(array, n):
    return array.count(n)

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

result = solution(array, 1)
print(result) #출력 : 2
def solution(array, n):
    return sum(1 for x in array if x == n)

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

result = solution(array, 1)
print(result) #출력 : 2
  • sum(1 for~ 문에서 1은 찾은 갯수가 1개이면 1+1 해서 2개가 같다는 출력값을 얻기 위해 1을 넣어준것. 0을 넣으면 1개라고 출력되어 같은 갯수가 1이라는 헷갈리는 답이 나온다.

 

 

 

 

 

 

 

 

 

16. 배열 자르기 

  • 정수 배열 numbers와 정수 num1, num2가 매개변수로 주어질 때, numbers num1번 째 인덱스부터 num2번째 인덱스까지 자른 정수 배열을 return 하도록 solution 함수를 완성해보세요.
  • 제한사항
    • 2 ≤ numbers의 길이 ≤ 30
    • 0 ≤ numbers의 원소 ≤ 1,000
    • 0 ≤num1 < num2 < numbers의 길이
  • 내가 푼 풀이
def solution(numbers, num1, num2):
    return numbers[num1:num2+1]

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

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

 

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

 

 

 

 

 

 

 

 

17. 문자열 뒤집기 

  • 문자열 my_string이 매개변수로 주어집니다. my_string을 거꾸로 뒤집은 문자열을 return하도록 solution 함수를 완성해주세요.
  • 제한사항  : 1 ≤ my_string의 길이 ≤ 1,000
  • 내가 푼 풀이
def solution(my_string):
    return my_string[::-1]

a = ["hello", "world"]

result = solution(a)
print(result) #출력 : ['world', 'hello']
  • 이렇게 풀이했더니 hello 가 olleh 로 나오지 않고 리스트만 뒤집혔다.
def solution(my_string):
    return my_string[::-1]

a = "hello"

result = solution(a)
print(result) #출력 : olleh
  • 리스트를 제외하고 문자만 넣었더니 뒤집혔다. 그럼 리스트 안에 있는 문자열을 뒤집으려면?
def solution(my_string):
    reversed_list = []
    for i in my_string:
        reversed_list.append(i[::-1])
    return reversed_list

a = ["hello","world"]

result = solution(a)
print(result) #출력 : ['olleh', 'dlrow']

 

  • 다른 사람의 풀이도 비슷하다.

 

 

 

 

 

 

 

 

 

18.  편지  

  • 머쓱이는 할머니께 생신 축하 편지를 쓰려고 합니다. 할머니가 보시기 편하도록 글자 한 자 한 자를 가로 2cm 크기로 적으려고 하며, 편지를 가로로만 적을 때, 축하 문구 message를 적기 위해 필요한 편지지의 최소 가로길이를 return 하도록 solution 함수를 완성해주세요.
  • 제한사항  :
    • 공백도 하나의 문자로 취급합니다.
    • 1 ≤ message의 길이 ≤ 50
    • 편지지의 여백은 생각하지 않습니다.
    • message는 영문 알파벳 대소문자, ‘!’, ‘~’ 또는 공백으로만 이루어져 있습니다.
  • 입출력 예 :  ' happy birthday! ' 는 result 30 / ' I love you~ ' 는 result 22
  • 내가 푼 풀이
def solution(message):
    return len(message) * 2

a = "happy birthday!"

result = solution(a)
print(result) #출력 : 30

 

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

 

 

 

 

 

 

 

 

19.  점의 위치 구하기 

  • 사분면은 한 평면을 x축과 y축을 기준으로 나눈 네 부분입니다. 사분면은 아래와 같이 1부터 4까지 번호를매깁니다.
    • x 좌표와 y 좌표가 모두 양수이면 제1사분면에 속합니다.
    • x 좌표가 음수, y 좌표가 양수이면 제2사분면에 속합니다.
    • x 좌표와 y 좌표가 모두 음수이면 제3사분면에 속합니다.
    • x 좌표가 양수, y 좌표가 음수이면 제4사분면에 속합니다.
    x 좌표 (x, y)를 차례대로 담은 정수 배열 dot이 매개변수로 주어집니다. 좌표 dot이 사분면 중 어디에 속하는지 1, 2, 3, 4 중 하나를 return 하도록 solution 함수를 완성해주세요.

 

  • 제한사항  :
    • dot의 길이 = 2
    • dot[0]은 x좌표를, dot[1]은 y좌표를 나타냅니다
    • -500 ≤ dot의 원소 ≤ 500
    • dot의 원소는 0이 아닙니다.
  • 내가 푼 풀이
def solution(dot):
    x, y = dot
    if x > 0 and y > 0:
        return 1
    elif x < 0 and y > 0:
        return 2
    elif x < 0 and y < 0:
        return 3
    elif x > 0 and y < 0:
        return 4

dot = (2,4)

result = solution(dot)
print(result) #출력 : 1

 

  • 다른 사람의 풀이
def solution(dot):
    x,y = dot
    if x*y>0:
        return 1 if x>0 else 3
    else:
        return 4 if x>0 else 2
def solution(dot):
    return [[1, 4], [2, 3]][dot[0] < 0][dot[1] < 0]
  • [[1, 4], [2, 3]]: 이는 2차원 리스트입니다. 각 행은 x값이 양수인지 음수인지에 따라 다른 리스트로 이루어져 있습니다. 예를 들어, 첫 번째 행은 x가 양수일 때에 해당하는 사분면을 의미하고, 두 번째 행은 x가 음수일 때에 해당하는 사분면을 의미합니다. 각 행의 첫 번째 원소는 y가 양수일 때에 해당하는 사분면을, 두 번째 원소는 y가 음수일 때에 해당하는 사분면을 의미합니다.

 

 

 

 

 

 

 

 

 

20. 문자열 안에 문자열 

  • 문자열 str1, str2가 매개변수로 주어집니다. str1 안에 str2가 있다면 1을 없다면 2를 return하도록 solution 함수를 완성해주세요.
  • 제한사항  :
    • 1 ≤ str1의 길이 ≤ 100
    • 1 ≤ str2의 길이 ≤ 100
    • 문자열은 알파벳 대문자, 소문자, 숫자로 구성되어 있습니다.
  • 내가 푼 풀이
def solution(str1, str2):
    if str1.find(str2) != -1: # -1은 fail을 나타낸다
        return 1
    else:
        return 2

strl1 = "ab6CDE443fgh22iJKlmn1o"
strl2 = "6CD"

result = solution(strl1, strl2)
print(result) #출력 : 1

 

  • 다른 사람의 풀이
def solution(str1, str2):
    return 1 if str2 in str1 else 2

strl1 = "ab6CDE443fgh22iJKlmn1o"
strl2 = "6CD"

result = solution(strl1, strl2)
print(result) #출력 : 1
def solution(str1, str2):
    return 1 + int(str2 not in str1)
    # 기본 1 반환, 없을 때 +1

 

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