Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 컴공과개념정리
- 데이터베이스
- HTTP
- 개발 영어실력
- 자료구조
- 파이썬
- 개발자공통지식
- jsx
- 개발 공식문서
- 스키마모델
- tableplus
- Go언어실무
- 개발자되기
- 코멘토실무PT
- 개발실무
- 자바
- 리액트
- 개발공부
- 코멘토
- 개발공식문서 어려움
- 코딩강의
- 알고리즘
- 유데미
- 데이터스키마
- 웹서버
- 개발 공식문서 읽기
- 실무PT
- Go언어
- golang
- postgredb
Archives
- Today
- Total
웹개발일지
프로그래머스 코딩테스트 입문 - 머쓱이보다 키 큰 사람[python] 본문
728x90
코테 풀이를 하고나서 내가 쓴 코드와 비교하여 다른 사람이 쓴 코드가 배울 점이 많다고 생각하여 기록하게 되었다.
문제해석
아래 두 자료가 주어진다. 여기서 height보다 큰 수가 array에서 몇 개인지 찾는 문제이다.
array = [160, 175, 180, 195]
height = 170
내가 쓴 코드
def solution(array, height):
count = 0
for i in array:
if i > height:
count += 1
return count
굉장히 직관적으로 푼 편이다. height 보다 큰 요소의 '개수'를 구하는 것이므로, count 변수를 지정하여 array를 순회하며 조건문을 통해 height 보다 클 때 마다 count를 1씩 증가시켜 준 뒤 return 하였다.
다른 사람의 코드
def solution(array, height):
array.append(height)
array.sort(reverse=True)
return array.index(height)
첫 번째 코드이다. 리스트에 height 을 넣은뒤 내림차순 정렬하고 height가 몇번째 인덱스인지를 구해주면 그 인덱스 번호만큼 height앞으로 몇 개의 요소가 있는지를 알 수 있어 답을 구할 수 있다.
def solution(array, height):
return sum(1 for a in array if a > height)
두 번째 코드이다. 이건 이해가 안되서 따로 찾아봤는데 .. 오.. if 조건문의 삼항 연산자를 사용했는데 그 반환값들을 sum()으로 묶어 array의 요소가 height보다 큰 경우를 조건으로 두어 True로 반환되는 횟수를 세어준 셈이다.
- 리스트 array의 각 원소 a에 대해서,
- if a > height 조건을 만족하는 경우에는 1을 반환하고, 조건을 만족하지 않는 경우에는 0을 반환합니다.
- 이렇게 반환된 1 또는 0을 모두 더한 결과가 반환됩니다.
즉, sum(1 for a in array if a > height)은 리스트 array에서 height보다 큰 원소의 개수를 계산하는 코드입니다. 이 값을 return하여 함수의 결과로 반환합니다.
'자료구조와 알고리즘' 카테고리의 다른 글
프로그래머스 - 달리기 경주 _ Python3 (0) | 2023.04.23 |
---|---|
DFS와 BFS (0) | 2023.01.25 |
Arraylist vs Linkedlist (0) | 2023.01.18 |
[백준2420] 여러 값 정수로 입력받기 & 절댓값함수의 사용 - Python (0) | 2023.01.16 |
[자료구조/알고리즘] 맵과 집합 map, set - 파이썬 (0) | 2023.01.12 |