skinOptions.hljs
Programmers / 최댓값과 최솟값 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 최댓값과 최솟값 (2단계) 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12939 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요. 나의 풀이 def solution(s): arr = s.split(' ') new = [] result = '' for i in arr: new.append(int(i)) a = min(new) b = max(new) result += str(a) result += ' ' result += str(b) return ..
Programmers / 최솟값 만들기 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 최솟값 만들기 (2단계) 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12941 나의 풀이 def solution(A,B): # 두 수를 고르고 곱한 값을 최소로 하는 것이 목표, 뽑았던 숫자는 못뽑음 A = sorted(list(A)) B = sorted(list(B), reverse = True) return sum([x*y for x,y in zip(A,B)]) 문제의 조건대로 따라가면 되는 2단계 중에서도 1단계 수준의 문제이다. ※ 알아야 할 것 - sorted 함수를 이용하여 오름차순으로 정렬한다. - zip 함수를 이용하여 두 값을 곱한다.
[자료구조] 해시, 해시법(hashing) / Python 파이썬
·
python/자료구조 & 알고리즘
해시법 해시법(hashing) '데이터를 저장할 위치 = 인덱스'를 간단한 연산으로 구하는 것을 말한다. 이 방법은 원소의 검색뿐 아니라 추가 · 삭제도 효율적으로 수행할 수 있다. 배열의 키(원소의 값)를 원소 갯수인 7로 나눈 나머지를 해시값(hash value)라고 한다. 해시값은 데이터에 접근할 때 기준이 된다. 11을 7로 나눈 나머지는 4이므로 x[4]에 바로 저장한다. 이렇게 키를 해시값으로 변환하는 과정을 해시 함수(hash function)라고 한다. 또한 일반적으로 해시 함수는 나머지를 구하는 연산 또는 그 연산을 응용할 때 주로 사용한다. 해시 테이블에서 만들어진 원소를 버킷(bucket)이라고 한다. 해시 충돌 앞에서 만든 해시 테이블에 18을 추가하면 7로 나눈 나머지는 4이므로 ..
[자료구조] 검색 알고리즘 (선형 검색/ 이진 검색) / Python 파이썬
·
python/자료구조 & 알고리즘
검색 알고리즘이란? 정렬은 흩어져있는 데이터를 키 값(주민등록번호, 학번 등)을 이용하여 순서대로 열거하는 알고리즘이다. 검색은 데이터(정렬이 안된 데이터 , 정렬이 된 데이터)에서 키 값에 해당되는 데이터를 찾는 알고리즘이다. 검색(Search) : n 개의 데이터를 검색한다. 가장 간단한 검색 알고리즘은 선형 검색(Sequential Search) 알고리즘이다. n개의 데이터를 놓고 한 개씩 검색하는 방법이다. 데이터가 정렬이 된 상태에서는 이진 검색(Binary Search) 방법이 더 효율적이다. 이진 검색은 전체 데이터의 중간에 있는 데이터를 비교하면서 찾는 데이터가 앞/뒤 중 어디 있는지 알 수 있다. 선형 검색 선형 검색 알고리즘은 직선 모양으로 늘어선 요소의 배열에서 앞부터 순차적으로 검색..
[기초] 배열(Array) / Python 파이썬
·
python/기초
- 배열(Array) 같은 타입의 변수들로 이루어진 유한 집합 배열을 구성하는 각각의 값을 배열 요소(element)라고 하며, 배열에서의 위치를 가리키는 숫자는 인덱스(index)라고 함 파이썬에서는 리스트 타입이 배열 기능을 제공 같은 종류의 데이터를 효율적으로 관리해야 하는 경우에 사용 같은 종류의 데이터를 순차적으로 저장 - 배열의 장단점 장점 빠른 접근이 가능 단점 미리 최대 길이를 지정해야 함 추가/삭제가 쉽지 않음 - 파이썬과 배열 1차원 배열 # 1차원 배열 : 리스트로 구현 시 data = [1,2,3,4,5,6,7,8] print(data) # [1, 2, 3, 4, 5, 6, 7, 8] 2차원 배열 # 2차원 배열 : 리스트로 구현 시 data = [[1,2,3],[4,5,6],[7,..
Programmers / *[1차] 다트게임 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: [1차] 다트게임 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/17682 나의 풀이(미완성) def solution(dart): arr=[] tmp = [] sum = 0 for x in dart: #문자열 분리 arr.append(x) for i in range(len(arr)): if arr[i].isnumeric(): arr[i] = int(arr[i]) for i in range(1,len(arr)): #10 처리 if arr[i-1] == 1 and arr[i] == 0: arr[i-1] = 10 arr.pop(i) for i in range(1,len(arr)):#S,D,T if a..
Programmers / 로또의 최고 순위와 최저 순위 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 로또의 최고 순위와 최저 순위 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/77484 나의 풀이 def solution(lottos, win_nums): cnt = [0,0] num = [] zero_cnt = 0 for i in lottos: if i in win_nums: num.append(i) if i == 0 : zero_cnt += 1 if len(num) == 0 : cnt[1] = 6 elif len(num) == 1: cnt[1] = 6 elif len(num) == 2: cnt[1] = 5 elif len(num) == 3: cnt[1] = 4 elif len(num) == ..
Programmers / 숫자 문자열과 영단어 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 숫자 문자열과 영단어 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/81301 풀이 1 딕셔너리 리플레이스 def solution(s): nums = { 'zero' : '0', 'one' : '1', 'two' : '2', 'three' : '3', 'four' : '4', 'five' : '5', 'six' : '6', 'seven' : '7', 'eight' : '8', 'nine' : '9' } for key, value in nums.items(): s = s.replace(key,value) return int(s) 풀이 2 리스트 리플레이스 ( 인덱스와 해당 문자열이 같은 것 이용)..
Programmers / 완주하지 못한선수 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 완주하지 못한선수 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/42576 나의 풀이(틀림) def solution(participant, completion): new_list = list(set(participant) - set(completion)) for x in new_list: return x 나의 함수는 동명이인이 있는 경우는 고려되지 않는 잘못된 함수이다.. 다른 풀이 def solution(participant, completion): participant.sort() completion.sort() for p,c in zip(participant, completion): if ..
Programmers / 부족한 금액 계산하기 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 부족한 금액 계산하기 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/82612 나의 풀이 def solution(price, money, count): sum = 0 for i in range(1,count+1): sum += price *i if sum - money > 0: return sum - money else: return 0 모범답안 def solution(price, money, count): return max(0,price*(count+1)*count//2-money) 등차수열의 합공식을 사용하여 식을 작성하였다. 등차수열의 합은 다음과 같다. a:초항 l:마지막항 n:수열의 ..
Programmers / 3진법 뒤집기 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 3진법 뒤집기 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/68935 풀이 def solution(n): tmp = '' while n: tmp += str(n % 3) n = n // 3 answer = int(tmp, 3) return answer 다른 풀이 * divmod 함수 이용 x와 y를 받으면 x를 y로 나눈 몫과, 나머지가 들어있는 tuple을 리턴하게 된다. 튜플은 for in으로 순회 가능하다. def solution(n): answer = '' while n > 0: n, re = divmod(n,3)# n을 3으로 나눈 몫과 나머지 answer += str(re) retu..
Programmers / 최소직사각형 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 최소직사각형 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/86491 나의 풀이 def solution(sizes): '2번 지갑을 가로로 눕힌다 -> 가로 세로를 바꾸어줌' max_w = 0 max_h = 0 for i in sizes: if i[0] max_w: max_w = i[0] if i[1] > max_h: max_h = i[1] return max_w * max_h 다른 풀이 def solution(sizes): return max(max(x) for x in sizes) * max(min(x) for x in..