본문 바로가기

Python262

[백준 1764번] 듣보잡 ( + input과 sys.stdin.readline의 차이점) import sys input = sys.stdin.readline n, m = map(int,input().split()) list_n = [] list_m = [] count = 0 count_list = [] for i in range(n): list_n.append(input().rstrip()) for i in range(m): list_m.append(input().rstrip()) set_n = set(list_n) set_m = set(list_m) for i in set_m: if i in set_n: count += 1 count_list.append(i) count_list.sort() print(count) for i in count_list: print(i) 이번 문제는 두 개의 .. 2023. 2. 23.
[백준 10815번] 숫자 카드 1. 이진 탐색을 활용하여 푼 방법 (1856ms) n = int(input()) array_n = sorted(list(map(int,input().split()))) m = int(input()) array_m = list(map(int,input().split())) def binary_search(array,target,start,end): while start target: end = mid - 1 else: start = mid + 1 return 0 for i in array_m: print(binary_search(array_n,i,0,n-1),end=" ") 2. 집합(Set) 자료형을 사용하여 푼 방법 (664ms) n = int(input()) array_n = list(map(int.. 2023. 2. 23.
[백준 10816번] 숫자 카드 2 1. 사전 자료형 + 이진 탐색을 활용하여 푼 방법 (2508ms) import sys input = sys.stdin.readline n = int(input()) array_n = sorted(list(map(int,input().split()))) m = int(input()) array_m =list(map(int,input().split())) dictionary = {} for i in array_n: if i not in dictionary: dictionary[i] = 1 else: dictionary[i] += 1 def binary_search(array,target,start,end): while start 2023. 2. 22.
[Python] 파이썬 자료형(리스트/튜플/사전/집합) 정리 이번 포스팅에서는 리스트와 튜플만으로는 시간복잡도를 해결할 수 없는 문제를 많이 접하다보니 Python에서 제공하는 여러 자료형과 관련 함수들을 활용하기 위해 정리하고자 한다. 1) 리스트(List) 자료형 (배열/테이블) 📝 List는 여러 개의 데이터를 연속적으로 담아 처리하기 위해 사용 파이썬의 리스트 자료형은 C나 자바와 같은 프로그래밍 언어의 ‘배열’ 기능을 포함하고 있으며, 내부적으로 연결 리스트 자료구조를 채택하고 있어서 append(), remove() 등의 메소드를 지원한다. 1-1) 리스트 만들기 리스트는 대괄호[] 안에 원소를 넣어서 초기화하며, 쉼표로 원소를 구분한다. 비어있는 리스트를 선언하고자 할 때는 list() 또는 [] 를 이용할 수 있다. 코딩 테스트 문제에서는 주로 크기.. 2023. 2. 22.
[백준 1920번] 수 찾기(이진 탐색) import sys input = sys.stdin.readline n = int(input()) array_n = sorted(list(map(int,input().split()))) m = int(input()) array_m = list(map(int,input().split())) def binary_search(array,target,start,end): while start target: end = mid - 1 else: start = mid + 1 return 0 for i in array_m: print(binary_search(array_n,i,0,n-1)) 이번 문제는 이전에 정렬 알고리즘에서 다루었지만, 출제자가 원하는 것은 이분 탐색 알고리즘을 사용하여 푸는 것이고 무엇보다 이진탐.. 2023. 2. 22.
[백준 2309번] 일곱 난쟁이 from itertools import combinations array = [0]*9 for i in range(9): array[i] = int(input()) remain = sum(array)-100 com_list = list(combinations(array,2)) for i in com_list: if sum(i) == remain: array.remove(i[0]) array.remove(i[1]) break array.sort() for i in array: print(i) 이번 문제는 정렬보다는 9명의 난쟁이 중 키의 합이 100이 되도록 만드는 조건을 구현하는 것이 관건인 문제였다. 문제에서 일곱 난쟁이를 찾을 수 없는 경우는 없다는 조건이 주어졌기 때문에, 무조건 난쟁이 7명이상은 .. 2023. 2. 22.