코밍이의 하루
[Lv0]머쓱이보다 키 큰 사람(Python) 본문
문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/120585
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
[나의 풀이]
def solution(array, height):
cnt = 0
for n in array:
if n > height:
cnt += 1
return cnt
[다른 사람의 풀이]
def solution(array, height):
array.append(height)
array.sort()
array.reverse()
#== array.sort(reverse=True)
array.sort(reverse=True)
return array.index(height)
1. 사용한 개념
1) if , else 조건문
2) for 반복문
3) 배열
2. 풀이 후기
- 나는 조건문, 반복문을 많이 사용하다 보니 이 문제의 경우도 반복문으로 접근했다. 다른사람이 푼 것처럼 배열로 접근해보고 싶으면 아직 배열에 대한 개념이 체화되지 않은 느낌이 든다. 구글링을 하면 찾아서 쓸 수 있는 정도이고 아직 메소드를 외워서 쓰지는 못한다. 물론 문법이 많다보니 외우는 건 실질적으로 부족하고 비효율적이다. 어차피 시간이 흐르면 까먹기 때문이다. 그리고 손코딩이 아닌 이상 공식 문서를 참고할 수 있기 때문에 외울 이유도 없다. 다만 이 문법을 사용하면 해결할 수 있겠다 정도로는 알아둘 필요가 있을 것 같다. 나는 문제를 for in을 통해 배열 안 요소를 하나씩 읽으면서 height보다 큰 경우에만 개수를 세고 총 개수를 출력해주는 형태로 취했다. 다른 풀이를 보면 배열안에 height 옮기고 .sort()를 통해 정렬하고 그 정렬한 배열을 .reverse()를 통해 배열을 역순으로 저장하고 있다. 역순으로 저장하는 이유는 해당 문제가 height보다 키 큰 사람들을 세는 것이기 때문에 내림차순으로 정렬되어야 키 큰 순으로 정렬된다. 이후 height의 인덱스를 출력하여 푸는 형태이다. .sort()와 .reverse()를 합친 .sort(reverse=True)도 있다. 처음에는 .sort(reverse=True) 이것이 이해가 안되서 풀어서 썼다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[Lv0] 문자 반복 출력하기(Python) (0) | 2023.02.17 |
---|---|
[Lv0] 몫 구하기(Python) (0) | 2023.02.17 |
[Lv0] 두 수의 합(Python) (0) | 2023.02.17 |
[Lv0] 두 수의 차(Python) (0) | 2023.02.17 |
[Lv0] 두 수의 나눗셈(Python) (0) | 2023.02.17 |