목록파이썬 (12)
It's easy, if you try
문제 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 제한 사항 phone_book의 길이는 1 이상 1,000,000 이하입니다. 각 전화번호의 길이는 1 이상 20 이하입니다. 입출력 예제 phone_bookreturn [119, 9767422..
문제 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니다. 섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2) Leo는 모든 음식의 스코빌 지수가 K 이상이 될 때까지 반복하여 섞습니다. Leo가 가진 음식의 스코빌 지수를 담은 배열 scoville과 원하는 스코빌 지수 K가 주어질 때, 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 섞어야 하는 최소 횟수를 return 하도록 solution 함수를 작성해주세요. 제한 사항 scoville의..
문제 실력 체크 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 레벨 1 풀이 난이도가 좀 많이 쉬워서 올리기 민망하지만 ㅎㅎ 풀어보았다. 문제 1 n = 3 이면 '수박수' n = 5 이면 '수박수박수' 와 같은 문자열을 반환한다. def solution(n): answer = '' for i in range(n): if i% 2 == 0: answer += '수' else: answer += '박' return answer 문제 2 배열 arr이 주어지면 최소 숫자를 제거한 배열을 반환한다. 배열이 모두 비어진 경우에는 [-1]을 반환한다. def solutio..
슬라이싱 (slicing) 기본형태 : array[start : end : step] start : 슬라이싱을 시작할 시작 위치 end: 슬라이싱을 끝낼 위치로 end는 포함하지 않는다. step: stride라고도 하며 몇개씩 끊어서 가져올지를 정한다. 양수,음수 모두 가능 a[ start: ] : start 위치부터 끝까지 가져오기 a[ end : ]: 시작점부터 end 위치까지 모두 가져오기 a[ start : end ] : start위치 부터 end 위치까지 모두 가져오기 a[ start : end : step ] (step이 양수 일 때) : 오른쪽으로 step만큼 이동하면서 가져온다. a[ start: end : step](step이 음수일 때): 왼쪽으로 step만큼 이동하면서 가져온다...
문제 수평 직선에 탑 N대를 세웠습니다. 모든 탑의 꼭대기에는 신호를 송/수신하는 장치를 설치했습니다. 발사한 신호는 신호를 보낸 탑보다 높은 탑에서만 수신합니다. 또한, 한 번 수신된 신호는 다른 탑으로 송신되지 않습니다. 예를 들어 높이가 6, 9, 5, 7, 4인 다섯 탑이 왼쪽으로 동시에 레이저 신호를 발사합니다. 그러면, 탑은 다음과 같이 신호를 주고받습니다. 높이가 4인 다섯 번째 탑에서 발사한 신호는 높이가 7인 네 번째 탑이 수신하고, 높이가 7인 네 번째 탑의 신호는 높이가 9인 두 번째 탑이, 높이가 5인 세 번째 탑의 신호도 높이가 9인 두 번째 탑이 수신합니다. 높이가 9인 두 번째 탑과 높이가 6인 첫 번째 탑이 보낸 레이저 신호는 어떤 탑에서도 수신할 수 없습니다. 송신 탑(높이..
1차원배열 정렬 좌에서 우로 정렬: np.sort(x) 거꾸로 정렬: np.sort(x)[::-1] , x[np.argsort(-x)] 2차원배열 정렬 열 축 기준(좌에서 우로)으로 정렬 : np.sort(x, axis=1) 행 축 기준(위에서 아래로)으로 정렬: np.sort(x, axis=0) 행 축 기준(위에서 아래로)으로 거꾸로 정렬: np.sort(x, axis=0)[::-1] 예시 np.sort(x) x = np.array([3,5,1]) --- 정렬 후 ---> array([1,3,5]) np.sort(x)[::-1] , x[np.argsort(-x)] x = np.array([3,5,1]) --- 정렬 후 ---> array([5,3,1]) np.sort(x, axis=1) x = np.a..
올림: ceil 내림: floor 반올림: round 예시 import math print(math.ceil(100/33)) # 4 print(math.ceil(0.3)) # 1 print(math.floor(100/33)) # 3 print(math.floor(0.6)) # 0 print(round(98/6)) #16 (몫: 16 나머지: 2 -> 나머지가 6의 반인 3보다 작은 값이기 때문에 내림 !) print(round(100/6)) # 17 (몫: 16 나머지: 4 -> 나머지가 6의 반인 3보다 큰 값이기 때문에 올림!) print(round(0.6)) # 1 최초 발행 날짜: 2020-08-27
정의 Combinations (조합 nCr) : 하나의 리스트에서 모든 조합을 계산해야할 때 사용한다. Permutations (순열 nPr) 과의 차이 순열은 순서가 바뀐 경우도 포함하고, 조합은 순서가 바뀐 경우는 포함하지 않는다(순서 상관 없음). 예를 들어 1,2,3 으로 이루어진 리스트에서 순열은 (1,2),(1,3),(2,3),(2,1),(3,1),(3,2) 조합은 (1,2),(1,3),(2,3) 이다. 사용 방법 from itertools import combinations # itertools 중 combinations를 import items = ['1','2','3'] c = list(combinations(items,2)) # 2가지 조합으로 이루어질 수 있는 모든 경우의 수를 l..
문자열 잘라내기 'hello world' 에서 일부만 자르고 싶을 때, >>> a = 'hello world' >>> a[0:5] 'hello' >>> a[6:11] 'world' a[0:5] 와 a[:5] 는 같은 문자열('hello')을 출력한다. 또한 a[6:11] 과 a[6:] 또한 같은 문자열('world')을 출력한다. 음수 인덱싱 >>> a[6:-2] 'wor' a[6:-2]에서 -2는 뒤에서 2번째까지 잘라내겠다는 것을 의미한다 따라서 맨 뒤에 문자 ld가 잘린것을 볼 수 있다. 참고 최초 발행 날짜: 2020-03-07

문제 코딩테스트 연습 - 위장 programmers.co.kr 풀이 이 문제는 알고리즘 스터디에서 설원언니가 풀이해준 문제인데, 복습하면 좋을 것 같아 다시 풀어보며 공부한 후, 정리했다. from collections import Counter from functools import reduce def solution(clothes): count = Counter([category for name, category in clothes]) return reduce(lambda x, y : x * (y + 1), count.values(), 1) -1 먼저 서로 다른 의상의 조합의 수를 구하는 공식 clothes가 [[yellow_hat, headgear], [blue_sunglasses, eyewear]..