본문 바로가기

> 알고리즘 문제 풀이/프로그래머스27

lv1-두 개 뽑아서 더하기 (python, 파이썬) def solution(numbers): n = len(numbers) ans = set() for i in range(n-1): for j in range(i+1, n): num = numbers[i] + numbers[j] if num not in ans: ans.add(num) return list(sorted(ans)) 2020. 10. 22.
lv1-문자열 내의 p와 y의 개수 (python, 파이썬) """ 1번: 나의 풀이(count 사용) """ def solution(s): p = s.count('p') + s.count('P') y = s.count('y') + s.count('Y') if p == y: return True else: return False return True """ 2번: 나의 풀이(구현 방식, 효율성 살짝 떨어짐) """ def solution2(s): p, y = 0, 0 for x in s: if x == 'p' or x =='P': p += 1 elif x == 'y' or x =='Y': y += 1 if p == y: return True else: return False """ 3번: 다른 사람의 풀이 (lower 사용) """ def solution3(s):.. 2020. 10. 22.
lv1-같은 숫자는 싫어 (python, 파이썬) """ 1번: 나의 풀이 """ def solution(arr): ans = [arr[0]] k = 0 for x in range(len(arr)): if arr[x] == ans[k]: continue ans.append(arr[x]) k += 1 return ans """ 2번: 다른 사람의 풀이 """ def solution2(arr): ans = [] for a in arr: if ans[-1:] == [a]: continue ans.append(a) return ans - 확인하기 - 슬라이싱 적극적으로 활용해보자! 2020. 10. 22.
lv1-x만큼 간격이 있는 n개의 숫자 (python, 파이썬) """ 1번: 나의 풀이(map 사용) """ def solution(x, n): tmp = [i+1 for i in range(n)] return list(map(lambda t: t*x, tmp)) """ 2번: 다른 사람의 풀이 """ def solution2(x, n): return [x*(i+1) for i in range(n)] 2020. 10. 22.