티스토리 뷰
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사분면에 속합니다.
- 제한사항 :
- 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
반응형
'AI웹 개발자 과정 공부 (팀스파르타) > 코딩테스트 연습' 카테고리의 다른 글
24.03.12_TIL (알고리즘 예제 51-55) (0) | 2024.03.12 |
---|---|
24.03.08_TIL (알고리즘 예제 41-50) (0) | 2024.03.08 |
24.03.07_TIL (알고리즘 예제 31-40) (0) | 2024.03.07 |
24.03.06_TIL (알고리즘 예제 21-30) (0) | 2024.03.06 |
24.03.04_TIL (알고리즘 예제 1-10) (0) | 2024.03.04 |