데이터 꿈나무
[코딩 테스트] 프로그래머스-머쓱이보다 키 큰 사람 본문
문제 설명
머쓱이는 학교에서 키 순으로 줄을 설 때 몇 번째로 서야 하는지 궁금해졌습니다. 머쓱이네 반 친구들의 키가 담긴 정수 배열 array와 머쓱이의 키 height가 매개변수로 주어질 때, 머쓱이보다 키 큰 사람 수를 return 하도록 solution 함수를 완성해보세요.
제한사항
- 1 ≤ array의 길이 ≤ 100
- 1 ≤ height ≤ 200
- 1 ≤ array의 원소 ≤ 200
입출력 예
| array | height | result |
| [149, 180, 192, 170] | 167 | 3 |
| [180, 120, 140] | 190 | 0 |
입출력 예 설명
입출력 예 #1
- 149, 180, 192, 170 중 머쓱이보다 키가 큰 사람은 180, 192, 170으로 세 명입니다.
입출력 예 #2
- 180, 120, 140 중 190보다 큰 수는 없으므로 0명입니다.
나의 문제 풀이
def solution(array, height):
answer = 0
for i in array:
if i > height:
answer += 1
else:
continue
return answer
배열의 요소를 하나씩 뽑아내서 머쓱이의 키(height)보다 큰지 확인을 한다. 크다면 answer의 수를 하나 늘려준다.
그게 아니라면, 다시 반복.
※ 헷갈렸던 부분
맨 처음 시도를 for i in range(array)로 했는데 오류가 나서 찾아보니, 배열은 range를 붙일 수 없다. range는 정수 범위만을 나타낼 수 있다. 따라서 배열의 요소를 하나씩 뽑아내려면 배열이 저장되어있는 변수명만을 입력해주어야 한다.
참고할만한 다른 사람 문제 풀이
def solution(array, height):
return sum(map(lambda x: x > height, array))
저번 포스팅에서 공부했던 lambda함수를 사용한 방법이다. 아직 lambda 함수가 익숙하지 않아 코드를 보고 lambda 함수를 써야겠다..! 라는 생각이 들지 않는다. 그래서 이 풀이가 눈에 들어왔다.
map 함수의 형태는 map(function, iterable)이다. 첫번째 매개변수로는 함수가 오고 두번째 매개변수로는 반복 가능한 자료형(리스트, 튜플 등)이 온다.
map(적용시킬 함수, 적용할 값들) 이런 식인 것이다.
그래서 height보다 큰 값이 array에서 몇 개가 있는지 sum 해준 것을 출력해주는 함수를 만든 것이다.
추가적으로 map함수에 대한 간단한 예제를 살펴보면,
result1 = list(map(int, [1.1, 2.2, 3.3, 4.4, 5.5]))
print(result1)
실행 결과
[1, 2, 3, 4, 5]
'Activity > Algorithm' 카테고리의 다른 글
| [코딩 테스트] 파이썬 문자열에서 모음 제거하기(프로그래머스 모음 제거) (0) | 2023.02.19 |
|---|---|
| [코딩 테스트] 프로그래머스_진료 순서 정하기(Python)_sorted, reverse, append (0) | 2023.02.10 |
| [코딩 테스트] 프로그래머스_삼총사_리스트에서 추출하여 더하기(Python) (0) | 2023.02.09 |
| [코딩테스트] 프로그래머스_k의 개수(Python) (0) | 2023.02.07 |
| [코딩 테스트] 프로그래머스_OX퀴즈(Python) (0) | 2023.02.06 |