프로그래머스(파이썬)
숫자 찾기 - index() vs find()
나의 풀이 def solution(num, k): try: return str(num).index(str(k)) +1 except Exception: return -1 ▶ index() 메서드의 경우 해당 매개변수가 위치한 index의 값을 반환한다. ▶ 해당 매개변수를 발견하지 못한 경우에는 Exception이 발생하는데 이 부분을 except 구문으로 처리한다. ▶ index() 메서드는 문자열, 리스트에 사용할 수 있다. 다른 사람의 풀이 def solution(num, k): return str(num).find(str(k)) + 1 if str(k) in str(num) else -1 ▶ find() 메서드는 문자열에서 "해당 문자"가 처음으로 나온 위치(인덱스)를 반환한다.
n의 배수 고르기 - filter(), lambda
나의 풀이 def solution(n, numlist): answer = [] for i in range(len(numlist)): if numlist[i] % n ==0: answer.append(numlist[i]) return answer 다른 사람의 풀이 def solution(n, numlist): return list(filter(lambda v: v%n==0, numlist)) ▶ filter() 함수를 활용하자 ▶ lambda를 활용하자
A로 B만들기 - rotate() 사용x , 문자 갯수만 비교하기(결과론적 접근)
문제풀이 from collections import Counter def solution(before, after): if Counter(before) == Counter(after): return 1 else: return 0 ▶ 문자열 밀기가 아닌 문자열의 순서를 이지저리로 바꾸어서 두 문자배열이 일치하는 경우 ▶ 두 문자열에 해당하는 각 문자(char)의 수가 같다. ▶ bofore와 after 문자열을 모두 오름차순이나 내림차순으로 정렬한 다음 두 문자열의 일치 여부를 확인하는 방법도 괜찮다.
문자열 계산하기★ - 리스트의 첫 요소를 저장 후 +=, -= 를 이용한다.
다른 사람의 풀이 def solution(my_string): arr=my_string.split(' ') answer=int(arr[0]) for i in range(1, len(arr), 2): if arr[i] == '+': answer+=int(arr[i+1]) else: answer -=int(arr[i+1]) return answer