Engineering WIKI
-
[프로그래머스] 최솟값 만들기Engineering WIKI/Programmers 2022. 5. 17. 15:37
코딩테스트 연습 - 최솟값 만들기 길이가 같은 배열 A, B 두개가 있습니다. 각 배열은 자연수로 이루어져 있습니다. 배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱합니다. 이러한 과정을 배열의 길이만큼 반복하며, 두 수를 곱 programmers.co.kr 내풀이 def solution(A,B): answer = 0 A = sorted(A) B = sorted(B, reverse=True) for i,j in zip(A, B): answer += i * j return answer 다른방법 1 def getMinSum(A,B): return sum(a*b for a, b in zip(sorted(A), sorted(B, reverse = True))) #아래 코드는 출력을 위한 테스트 코드입니..
-
[프로그래머스] 최댓값과 최솟값Engineering WIKI/Programmers 2022. 5. 17. 15:28
코딩테스트 연습 - 최댓값과 최솟값 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를 programmers.co.kr 내풀이 def solution(s): answer = '' s = s.split(" ") s = list(map(int, s)) min_value = min(s) max_value = max(s) answer = f"{min_value} {max_value}" return answer 다른방법 1 def solution(s): s = list(map(int,s.split())) return str(min(s)) + " " + str(m..
-
[프로그래머스] 카펫Engineering WIKI/Programmers 2022. 5. 17. 15:27
코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 programmers.co.kr 다른 사람 풀이 def solution(brown, yellow): total = brown + yellow # 전체 카펫의 칸 for weight in range(total, 2, -1): # 가로 if total % weight == 0: # 카펫넓이에서 가로길이 탐색 height = total // weight # 카펫넓이 / 가로길이를 통해 세로길이 탐색 if yellow == (weight - 2) * (height - 2): return [i, a]
-
[프로그래머스] H-Index (정렬)Engineering WIKI/Programmers 2022. 5. 13. 09:02
코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표 programmers.co.kr [연구논문을 위한 핵심 10단계] H-지수(H-Index) 란 무엇인가? 일반적으로 특정 연구원의 연구성과를 평가하기 위해 얼마나 많은 논문을 발표 하였는지를 보게됩니다. 그러나 단순히 발표한 논문 수로만 그 연구원의 연구 업적을 평가 하기에는 발표한 논문 www.ibric.org H-index 설명이 프로그래머스에서는 헷갈리게 되어있음. 위 H-지수가 무엇인지 알면 쉽게 풀 수 있음. enumerate를 쓰면 쉽게 풀 수 있음 ..
-
collections 모듈 - OrderedDictEngineering WIKI/Python 2022. 5. 12. 16:10
1. OrederedDict 란? OrderedDict 는 기본 딕셔너리(dictionary)와 거의 비슷하지만, 입력된 아이템들(items)의 순서를 기억하는 Dictionary 클래스 # 예제1 - sorted()를 이용한 정렬된 OrderedDict 만들기 from collections import OrderedDict # 기본 딕셔너리 d = {'banana': 3, 'apple': 4, 'pear': 1, 'orange':2} # 키(key)를 기준으로 정렬한 OrderedDict ordered_d1 = OrderedDict(sorted(d.items(), key=lambda t:t[0])) print(ordered_d1) ''' 결과 OrderedDict([('apple', 4), ('bana..
-
collections 모듈 - namedtupleEngineering WIKI/Python 2022. 5. 12. 15:56
# 예제1. tuple() vs namedtuple() # tuple() a = ('John', 28, '남') b = ('Sally', 24, '여') for n in [a, b]: print('%s은(는) %d 세의 %s성 입니다.' %n) ''' 결과 John은(는) 28 세의 남성 입니다. Sally은(는) 24 세의 여성 입니다. ''' import collections # namedtuple() Person = collections.namedtuple("Person", 'name age gender') P1 = Person(name='Jhon', age=28, gender='남') P2 = Person(name='Sally', age=28, gender='여') for n in [P1, P2]..
-
collections 모듈 - dequeEngineering WIKI/Python 2022. 5. 12. 15:44
1. deque란 Deque(데크)는 double-ended queue 의 줄임말로, 앞과 뒤에서 즉, 양방향에서 데이터를 처리할 수 있는 queue형 자료구조를 의미한다. 아래의 [그림1]은 deque의 구조를 나타낸 그림이다. python 에서 collections.deque는 list와 비슷하다. append(), pop() 등의 메소드를 deque에서도 제공한다 append(x) list.append(x) 와 마찬가지로 x를 deque의 오른쪽(마지막)에 추가(삽입)해준다. # 예제1. list.append() vs deque.append() import collections # list lst = ['a', 'b', 'c'] lst.append('d') print(lst) ''' 결과 ['a',..
-
collections 모듈 - defaultdictEngineering WIKI/Python 2022. 5. 12. 15:37
# 예제(1) - dict vs defaultdict # 1-1. 기본 딕셔너리 import collections ex1 = {'a':1, 'b':2} print(ex1) ------------------------- print(ex1['c']) ''' 결과 {'b': 2, 'a': 1} --------------------------------- # defaultdict의 초기값 생성 KeyError: 'c' ''' # 1-2. collections.defaultdict # defaultdict의 초기값 생성 def default_factory(): return 'null' ex2 = collections.defaultdict(default_factory, a=1, b=2) print(ex2) prin..