파이썬 (31) 썸네일형 리스트형 [탐욕법] 난이도1, Facebook 인터뷰 '곱하기 혹은 더하기' (Python) 각 자리가 숫자(0부터 9)로만 이루어진 문자열 S가 주어졌을 때, 왼쪽부터 오른쪽으로 하나씩 모든 숫자를 확인하며 숫자 사이에 'x' 혹은 '+' 연산자를 넣어 결과적으로 만들어질 수 있는 가장 큰 수를 구하는 프로그램을 작성하세요. 단, +보다 x를 먼저 계산하는 일반적인 방식과는 달리, 모든 연산은 왼쪽에서부터 순서대로 이루어진다고 가정합니다. 예를 들어 02984라는 문자열이 주어지면, 만들어질 수 있는 가장 큰 수는 ((((0+2)*9)*8)*4) = 576입니다. 또한 만들어질 수 있는 가장 큰 수는 항상 20억 이하의 정수가 되도록 입력이 주어집니다. 첫째 줄에 여러 개의 숫자로 구성된 하나의 문자열 S가 주어집니다. (1 [해시] 프로그래머스 L1 '완주하지 못한 선수' (Python) https://programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 동명이인을 구분하기 위해 참가자의 이름별로 1씩 더한다. (동명이인이라면 2가 되니까) 완주자 명단에 있는 이름은 1을 뺀다. 완주하지 못한 사람은 한 명뿐이므로 값이 1인 이름을 출력한다. #1차시도 - 정확성 1,3,4,5 효율성 1,2,3,4,5 실패 def solution(participant, completion): answer = .. [해시] 백준 15829번 'Hashing' (Python) https://www.acmicpc.net/problem/15829 15829번: Hashing APC에 온 것을 환영한다. 만약 여러분이 학교에서 자료구조를 수강했다면 해시 함수에 대해 배웠을 것이다. 해시 함수란 임의의 길이의 입력을 받아서 고정된 길이의 출력을 내보내는 함수로 정 www.acmicpc.net 아스키코드를 정수로(ord), 정수를 아스키코드로(chr) 변환하는 함수 사용 문제에 나와있는 공식대로 코딩 ''' 5 abcde 3 zzz 1 i ''' import sys input_data = sys.stdin.readline().rstrip() L = int(input_data.split()[0]) S = input_data.split()[1] hash = dict() for idx, i.. [자료구조/알고리즘] 해시(Hash) - 해시 테이블, 파이썬 딕셔너리(Python Dictionary) 해쉬 테이블 (Hash Table) 1. 해쉬 구조 * Hash Table: 키(Key)에 데이터(Value)를 저장하는 데이터 구조 - Key를 통해 바로 데이터를 받아올 수 있으므로, 속도가 획기적으로 빨라짐 - 파이썬 딕셔너리(Dictionary) 타입이 해쉬 테이블의 예: Key를 가지고 바로 데이터(Value)를 꺼냄 - 보통 배열로 미리 Hash Table 사이즈만큼 생성 후에 사용 (공간과 탐색 시간을 맞바꾸는 기법) - 단, 파이썬에서는 해쉬를 별도 구현할 이유가 없음 - 딕셔너리 타입을 사용하면 됨 2. 알아둘 용어 해쉬(Hash) 임의 값을 고정 길이로 변환하는 것 데이터를 다루는 기법 중 하나로 검색과 저장이 아주 유용한 구조 key와 value 쌍으로 데이터를 저장한다. * 해쉬 테.. [완전탐색] 프로그래머스 L2 '소수 찾기' (Python) https://programmers.co.kr/learn/courses/30/lessons/42839 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 programmers.co.kr 종이 조각으로 여러 개의 조합을 만들어야 하므로 itertools 라이브러리 사용 중복된 숫자가 나올 수 있으므로 set() 사용 소수는 에라토스테네스의 체 공식으로 찾음 from itertools import permutations from math import sqrt def solution(numbers): s = set() for i in .. [알고리즘] 완전탐색(순차탐색)/이분탐색(이진탐색) 완전 탐색(=Brute Force) / 순차 탐색(=Sequential Search) 컴퓨터의 빠른 계산 성능을 활용하여 가능한 모든 경우의 수를 탐색하는 효율성 관점에서 최악의 방법 리스트 안에 있는 특정한 데이터를 찾기 위해 앞에서부터 데이터를 하나씩 차례대로 확인하는 방법 시간 복잡도 : O(N) = 선형 복잡도 = 입력값이 증가함에 따라 시간 또한 같은 비율로 증가하는 것 [반복문] def solution(trump): for i in range(len(trump)): if trump[i]==8: return i return -1 def sequential_search(n, target, array): for i in range(n): if array[i] == target: return i+1 .. [정렬] 프로그래머스 L1 '실패율' (Python) https://programmers.co.kr/learn/courses/30/lessons/42889 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr python 배열의 count() 함수를 이용하여 계산해야겠다고 생각 실패율을 기준으로 내림차순 정렬하되, 출력은 스테이지 번호를 출력하라 했으므로 dict() 사용 스테이지에 도달한 플레이어 수는 스테이지가 올라갈수록 그 전의 모든 플레이어 수가 없어지므로 total 변수 사용 ZeroDivisonError를 대비하여 try/except 구문 처리 #1차시도 .. [정렬] 난이도1, 백준 18310번 '안테나' (Python) https://www.acmicpc.net/problem/18310 18310번: 안테나 첫째 줄에 집의 수 N이 자연수로 주어진다. (1≤N≤200,000) 둘째 줄에 N채의 집에 위치가 공백을 기준으로 구분되어 1이상 100,000이하의 자연수로 주어진다. www.acmicpc.net 집의 위치가 정렬되어 있지 않으므로 정렬 정렬 후 배열의 중앙값에 안테나를 설치했을 때 거리의 총합이 최소가 됨 집의 개수를 반으로 나누면 중앙값이 나옴. 단, 배열은 0부터 시작하므로 1을 빼줌 '''입력예시 4 5 1 7 9 ''' n = int(input()) house = list(map(int,input().split())) house.sort() print(house[(n-1)//2]) 필요 없이 주어지는 입.. 이전 1 2 3 4 다음