목록자료구조&알고리즘/프로그래머스 (12)
celina의 이것저것
문제 탐색하기- 문제에서 구해야 하는 최종 정답은 무엇인지 탐색한 과정- 그 정답을 구하기 위해 어떻게 코드를 구현해야 할지 고민한 과정- 문제에 들어오는 범위를 파악하여 어떤 알고리즘을 쓸 수 있을지 고민해 가는 과정 문제 아이디어)모든 차량이 적어도 한 번은 카메라를 지나야 한다.매 순간, 차량의 진출 지점에 카메라를 설치하는게 최선의 선택이다왜 진입 지점이 아닌 진출 지점으로 정렬하는가?=> 진출지점으로 정렬해야 최소 카메라 설치 가능함 **카메라 설치**첫 번째 차의 진출 지점에 카메라 설치하고, 그 카메라가 다음 차량도 커버할 수 있는지 확인한다이후 카메라가 다음 차량의 진입 지점보다 앞에 있으면 그 카메라가 그 차량도 커버할 수 있기 때문에추가적인 카메라 설치는 필요없다.카메라가 다음 차량..
def solution(numlist, n): sorted_list = sorted(numlist, key=lambda x: (abs(x - n), -x)) return sorted_list 람다함수를 첨 써보는데lambda 인자 : 표현식요롷게 표현한다 def add(x, y): return x + y이 함수를 람다 함수로 바꾸면 다음과 같이 작성할 수 있다add = lambda x, y: x + y 그래서 람다함수를 써서 정렬에 썼다이 코드는 두개를 정렬하는데 이건 첨알게되었다(abs(x-n)이 첫번니까 이걸 기준으로 정렬을 하다가 같은 값이 생기면-x이걸 기준으로 정렬한다 -니까 내림차순으로 정렬을 하는원리다 파이썬은 대박이다 참고 : https://daeun-compu..
def solution(i, j, k): str0=''.join([str(num) for num in range(i, j+1)]) return list(str0).count(str(k)) 1.i부터 j까지 돌면서 각 숫자들을 "문자열"로 바꾼다 str(num)2. 예를들어 1부터 13까지면 다 문자열로 바뀐걸 ' '.join으로 하나의 문자열로 만든다 -> '1234567890111213'3. 리스트로 바꾸고 이제 k가 몇번나오는지 카운트한다 -----------------------------다른사람풀이------------------------def solution(i, j, k): answer = sum([ str(i).count(str(k)) for i in range(i,j+1)..
def solution(spell, dic): spell = set(spell) for i in dic: if spell.issubset(set(i)): return 1 return 2 set(): 고유한 요소만을 저장리스트 [1, 2, 2, 3]를 set으로 변환하면 {1, 2, 3}이 됨add, remove처럼 요소 추가/삭제도 가능.union.intersection합집합, 교, 차집합 등으 연산도 가능 issubset() A.issubset(B)여기서 A와 B는 비교할 두 개의 집합이 메서드는 A의 모든 요소가 B 내에 존재할 경우 True를 반환하고, 그렇지 않다면 False를 반환
내 풀이def solution(array): array = map(str, array) combined_str = "".join(array) return array.count('7') 1. 정수배열의 모든 요소를 문자열로 변환2. 문자열로 변환된 요소를 하나의 문자열로 결합3. 결합된 문자열에서 개수 세기 다른 사람 풀이def solution(array): return str(array).count('7')........문자열로 바꿔서 바로 카운트 .............
def solution(num, k): num = list(map(int, str(num))) for i in num: if i == k: return num.index(i)+1 return -1 map 함수 기본 문법map(function, iterable) function: 각 요소에 적용할 함수입니다.iterable: 함수를 적용할 데이터 집합입니다. map() 함수는 iterable의 각 요소에 대해 function 함수를 적용한 결과를 새로운 iterator로 반환합니다. 이때, function 함수는 각 요소를 인자로 받아서 처리하며, 함수의 반환값이 새로운 iterator의 각 요소가 됩니다. num = 5678num_str = str(nu..
def solution(my_string): ans=[] for i in my_string: if i.isdigit(): ans.append(int(i)) return sorted(ans) 처음에 return을 할때 ans.sort()라고 했는데 자꾸 오류가 났다알고보니 반환값이 null이엇는데python에서 list.sort() 메소드는 리스트를 정렬하되 반환값이 None입니다. 이는 sort()가 리스트를 "in-place"로 정렬한다는 의미로, 리스트 자체는 변경되지만, 반환값은 없습니다. 그렇다고 한다 그래서 해결방법 ans.sort() # 리스트를 정렬 return ans # 정렬된 리스트 반환이렇게 하던가 sorted라는걸 쓰면된다새..