공부/📝 프로그래머스(126)
-
머쓱이보다 키 큰 사람 - Python
def solution(array, height): return sum([1 for item in array if item > height]) # Test Cases print(solution([149, 180, 192, 170], 167)) print(solution([180, 120, 140], 190)) 이 코드의 시간복잡도는 O(N)입니다. def solution(array, height): array.append(height) array.sort(reverse=True) return array.index(height) 꽤나 재미있는 코드를 발견했습니다. 시간복잡도는 아래의 계산 과정을 거칩니다. sort()의 메서드는 시간복잡도를 얼마나 차지하는지 궁금하기도 했었는데 좋은 공부가 되네요. arr..
2023.09.29 -
중복된 문자 제거 - Python
def solution(my_string): answer = '' for item in my_string: if item in answer: pass else: answer += item return answer # Test Cases print(solution("people")) print(solution("We are the world")) 위와 같이 풀었습니다. 처음에 set()을 쓸까 했었는데 set()은 순서가 없다보니 결과 출력이 매번 다르게 나오는게 문제니까요. def solution(my_string): return ''.join(dict.fromkeys(my_string)) 그런데 다른 사람의 풀이에서 딕셔너리를 활용하여 푸는 것을 보았습니다. 창의적입니다. 프로그래머스: https://..
2023.09.29 -
컨트롤 제트 - Python
def solution(s): command = list(s.split()) answer = 0 temp = 0 for item in command: if item == 'Z': answer -= temp else: temp = int(item) answer += temp return answer # Test Cases print(solution("1 2 Z 3")) print(solution("10 20 30 40")) print(solution("10 Z 20 Z 1")) print(solution("10 Z 20 Z")) print(solution("-1 -2 -3 Z")) temp 변수를 선언하여 구현했습니다. def solution(s): stack = [] for a in s.split(): ..
2023.09.29 -
소인수분해 - Python
def solution(n): answer = [] divisor = 2 while n > 1: if n % divisor == 0: if divisor not in answer: answer.append(divisor) n //= divisor else: divisor += 1 return answer # Test Cases print(solution(12)) print(solution(17)) print(solution(420)) 이렇게 풀었습니다. 프로그래머스: https://school.programmers.co.kr/learn/courses/30/lessons/120852 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술..
2023.09.29 -
숨어있는 숫자의 덧셈 (1) - Python
def solution(my_string): answer = 0 for item in my_string: if item.isdigit(): answer += int(item) return answer # Test Cases print(solution("aAb1B2cC34oOp")) print(solution("1a2b3c4d123")) 이번엔 .isdigit()를 사용했습니다. def solution(my_string): return sum(int(i) for i in my_string if i.isdigit()) 그런데 sum()을 쓰면 더 깔끔하게 된다는 것을 잊었네요, 프로그래머스: https://school.programmers.co.kr/learn/courses/30/lessons/120851 ..
2023.09.29 -
문자열 정렬하기 (1) - Python
def solution(my_string): answer = [] [answer.append(int(i)) for i in my_string if i in "0123456789"] answer.sort() return answer # Test Cases print(solution("hi12392")) print(solution("p2o4i8gj2")) print(solution("abcde0")) def solution(my_string): return sorted([int(c) for c in my_string if c.isdigit()]) .isdigit()를 사용한 풀이를 발견했습니다. 배워야겠습니다. 프로그래머스: https://school.programmers.co.kr/learn/courses..
2023.09.29 -
모음 제거 - Python
def solution(my_string): for item in ["a", "e", "i", "o", "u"]: my_string = my_string.replace(item, "") return my_string # Test Cases print(solution("bus")) print(solution("nice to meet you")) replace()를 사용했습니다. def solution(my_string): return "".join([i for i in my_string if not(i in "aeiou")]) join()을 사용한 풀이를 발견했습니다. 깔끔하네요. 프로그래머스: https://school.programmers.co.kr/learn/courses/30/lessons/1208..
2023.09.29