본문 바로가기

프로그래밍_백준/Python

(8)
Python) sort()함수 Sort 1. 기본적인 리스트 정렬 numbers = [4, 2, 7, 5, 1] numbers.sort() print(numbers) # 출력: [1, 2, 4, 5, 7] list.sort(reverse=True)를 사용하면 역순으로 정렬할 수 있다. numbers = [4, 2, 7, 5, 1] numbers.sort(reverse=True) print(numbers) # 출력: [7, 5, 4, 2, 1] 2. key를 사용한 정렬 words = ['apple', 'banana', 'cherry', 'grape', 'kiwi'] words.sort(key=len) print(words) # 출력: ['kiwi', 'apple', 'grape', 'banana', 'cherry'] 3. 2차원 배열..
Phthon) 1929번 소수 구하기 백준 1929문제는 소수를 M과 N사이의 소수를 출력하는 문제입니다. 소수 문제를 제한 시간 안에 효율적으로 풀기 위해서는 공식을 사용해야 합니다! 소수를 판별을 할 때 사용하는 공식은 제곱근을 이용한 방식입니다. 만약 36이라는 숫자가 있으면 제곱근을 통해 6을 구하고 이를 범위로 설정하여 검사하면 효율적으로 검사할 수 있습니다. M, N = map(int, input().split()) for i in range(M, N+1): if i == 1: continue prime = True for j in range(2, int(i**0.5) + 1): # 소수 확인을 위한 for 루프 범위 수정 if i % j == 0: prime = False # i가 j로 나누어 떨어지면 소수가 아님 break i..
Python) 10989 수 정렬하기 Counting Sort (계수 정렬) 이번 문제는 수를 정렬하는 문제입니다. 계수 정렬도 풀어야지 해결할 수 있습니다! (몰랐어요..ㅠㅠ) 계수 정렬이란? 데이터의 범위가 작고 정수일 경우 효율적인 정렬 알고리즘이며, 시간 복잡도는 O(n+k)입니다. (n은 입력 데이터의 수, k는 입력 데이터의 범위) 계수 정렬의 기본 원리는 입력 데이터의 각 정수 값을 계수하기 위해 배열을 사용하는 것입니다. 배열의 각 인덱스는 입력 정수 값에 대응하며, 배열의 값은 해당 정수가 데이터에 나타나는 회수를 나타냅니다. 제가 해결한 방법은 숫자 목록(N개의 정수 값)을 입력 받습니다. 크기가 100인 배열(arr)을 생성합니다. 배열의 크기는 입력 데이터의 최대 범위에 따라 조정될 수 있습니다. 입력 받은 숫자 목록에서 각 숫자를 읽고, 해당 숫자와 같은 ..
Python) 1181번 단어 정렬 (sort함수) 1. 단어을 사전 순으로 정렬한 다음에 2. 길이 순으로 정렬하면 => 길이 순으로 정렬한 후 사전 순으로 정리한 것 처럼 출력할 수 있습니다. 또한, set 함수를 이용해서 중복된 값을 합쳤고, sort에서 key를 이용하여 길이 순으로 정렬하였습니다. import sys input = sys.stdin.readline # 입력 속도를 높여주는 sys.stdin.readline을 input으로 사용합니다. n = int(input().strip()) # 입력받을 문자열의 개수를 저장합니다. a = [] # 문자열을 저장할 리스트를 초기화합니다. # 문자열을 입력받아 리스트에 추가합니다. for i in range(n): a.append(input().strip()) # 중복 제거 a = set(a) #..
Python) 9012번 괄호 문제 (stack) 괄호가 올바르게 균형을 이루었는지 확인하는 문제입니다. 스택을 사용한 방법, 사용하지 않은 방법 두 가지로 문제를 풀었습니다. 첫 번째 문자열의 개수를 입력받습니다. 각 문자열에 대해 입력을 받아 bracket_list에 저장합니다. 문자열 길이의 홀수 여부를 확인하여 짝수문자열인 경우에만 올바른 조합 검증을 수행합니다. 문자열 내부에서 여는 괄호와 닫는 괄호의 개수를 세어 올바른 조합 여부를 판정합니다 a = int(input()) # 테스트 케이스의 수를 입력받습니다. bracket_list = [] # 괄호 문자열을 저장할 리스트를 초기화합니다. count_open = 0 # 여는 괄호의 개수를 추적하기 위한 변수를 초기화합니다. count_close = 0 # 닫는 괄호의 개수를 추적하기 위한 변..
Python) 2839번 설탕 배달 문제 설탕 문제는 값을 입력받으면 그 값을 5와 3으로 나누어떨어지는지 확인하는 문제이고 그 중 최소 횟수를 출력하는 문제입니다. 첫 번째 방식은 5로 나눈 나머지가 0, 1, 2, 3, 4인 경우로 나누어서 해결하였습니다. (반복문 안 쓰고 해결할 수 있을 거 같아서 했더니 좀 길어진 거 같아요..) import sys input=sys.stdin.readline kg = int(input().strip()) # 경우의 수 확인 if kg == 7: print("-1") sys.exit() if kg < 5: if kg == 3: print("1") sys.exit() else: print("-1") sys.exit() copy_temp = kg # 가능한 5kg 봉지의 수 계산 five_bag = kg /..
Python) 백준 2609번 최대공약수와 최소공배수 최소공배수와 최대공약수를 구하는 문제입니다다. 최대공약수를 바탕으로 최소공배수를 구하는 공식도 있는데 두 가지 나눠서 해결하겠습니다. 공식을 사용하지 않은 버전입니다. 1. 입력한 값들의 약수를 구해서 list로 저장합니다. 2. 저장한 list 값을 바탕으로 교집합을 구한 뒤 최대값을 반환합니다. (최대공약수) 3. 입력한 두 수를 곱한 값의 약수를 구하고 최소공배수인지 확입합니다 (최소공배수) def Divisor(n): divisors = [] for i in range(1, n + 1): if(n % i) == 0: divisors.append(i) return divisors # n의 약수를 구하여 divisors 리스트에 추가하고 이를 반환합니다. def GCD(a, b): return max..
Python) 백준 1978번 소수 찾기 소수를 찾는 문제입니다. 해결 방법으로는 2보다 작은 값은 뛰어넘고 2 ~ (자기 자신 - 1)의 값을 자기 자신과 일일이 나누고 끝까지 나누어 떨어지지 않으면 소수로 판단하고 count에 +1을 하는 방식으로 해결했습니다. a = int(input()) # 사용자로부터 정수를 입력받아 'a'에 저장합니다. numbers = list(map(int, input().split())) # 사용자로부터 a개의 정수를 공백으로 구분하여 입력받아 정수 리스트로 변환합니다. count = 0 # 소수의 개수를 저장할 변수 count를 초기화합니다. for i in numbers: # 리스트 'numbers'의 각 원소에 대해 반복합니다. if i < 2: # i가 2 미만인 경우 소수가 아니므로 다음 원소로 넘어갑..

728x90