본문 바로가기

두두의 알고리즘/문제

(124)
[이분탐색] 릿코드 Easy 704 'Binary Search' (Python) https://leetcode.com/problems/binary-search/ Binary Search - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 이분탐색으로 리스트의 인덱스 찾기 class Solution: def search(self, nums: List[int], target: int) -> int: def binary_search(array,target,start,end): if start>end: return None mid = (start+e..
[순열과 조합] 백준 1759번 '암호 만들기' (Python) https://www.acmicpc.net/problem/1759 1759번: 암호 만들기 첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다. www.acmicpc.net 암호가 순서대로 정렬되어 있어야 하므로 combinations 사용 최소 모음 1개 이상, 자음 2개 이상 있어야 함 '''입력 예시 4 6 a t c i s w ''' from itertools import combinations l,c = map(int, input().split()) alpha = input().split() alpha.sort() result = list(combinations(..
[소수의 판별] 백준 1929번 '소수 구하기' (Python) https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net N과 M의 최댓값이 1,000,000이므로 에라토스테네스의 체 알고리즘으로 풀어야 함 '''입력 예제 3 16 ''' import math n,m = map(int,input().split()) array = [True for i in range(m+1)] array[0],array[1] = 0,0 #0,1은 소수 아님 주의 for i in range(2,int(math.sqrt(m))+1): if array[i]==True: ..
[서로소집합] CCC '탑승구' (Python) 공항에는 G개의 탑승구가 있으며, 각각의 탑승구는 1번부터 G번까지의 번호로 구분됩니다. 공항에는 P개의 비행기가 차례대로 도착할 예정이며, i번째 비행기를 1번부터 g(i) 번째 (1
[그래프 이론] 이취코 393p '여행 계획' (Python) 한울이가 사는 나라에는 N개의 여행지가 있으며, 각 여행지는 1~N번까지의 번호로 구분됩니다. 또한 임의의 두 여행지 사이에는 두 여행지를 연결하는 도로가 존재할 수 있습니다. 이때, 여행지가 도로로 연결되어 있다면 양방향으로 이동이 가능하다는 의미입니다. 한울이는 하나의 여행 계획을 세운 뒤에 이 여행 계획이 가능한지의 여부를 판단하고자 합니다. 예를 들어 N=5이고, 다음과 같이 도로의 정보가 주어졌다고 가정합시다. * 1번 여행지 - 2번 여행지 * 1번 여행지 - 4번 여행지 * 1번 여행지 - 5번 여행지 * 2번 여행지 - 3번 여행지 * 2번 여행지 - 4번 여행지 만약 한울이의 여행 계획이 2번->3번->4번->3번이라고 해봅시다. 이 경우 2번->3번->2번->4번->2번->3번의 순서로..
[기타] 백준 1459번 '걷기' (Python) https://www.acmicpc.net/problem/1459 1459번: 걷기 세준이는 학교에서 집으로 가려고 한다. 도시의 크기는 무한대이고, 도시의 세로 도로는 모든 정수 x좌표마다 있고, 가로 도로는 모든 정수 y좌표마다 있다. 세준이는 현재 (0, 0)에 있다. 그리고 ( www.acmicpc.net 한 블록의 2배 값이 대각선보다 작으면 최종 목적지(x+y) * 한 블록 대각선이 더 빠르다면, x와 y의 차가 짝수라면, {대각선*(x, y 중 작은 값)} + {(한 블록, 대각선 중 작은 값)*(x, y 차)} 홀수라면, {대각선*(x,y 중 작은 값)} + {(한 블록, 대각선 중 작은 값)*((x, y 차)-1)+한 블록} '''입력예제 4 2 3 10 4 2 3 5 2 0 12 10 ..
[기타] 백준 1254번 '팰린드롬 만들기' (Python) https://www.acmicpc.net/problem/1254 1254번: 팰린드롬 만들기 동호와 규완이는 212호에서 문자열에 대해 공부하고 있다. 규완이는 팰린드롬을 엄청나게 좋아한다. 팰린드롬이란 앞에서부터 읽으나 뒤에서부터 읽으나 같게 읽히는 문자열을 말한다. 동호는 www.acmicpc.net 팰린드롬이 맞는지 확인할 수 있는 함수를 만든다. 문자를 하나씩 맨 뒤에 붙이면서 팰린드롬이 맞는지 확인한다. def pal(ss): half = len(ss)//2 for i in range(half): if s[i] != s[-(i+1)]: return False return True tmp = '' s = input() leng = len(s) if fel(s)==False: for i in ra..
[연결리스트/트리구조] 프로그래머스 L2 '더 맵게' (Python) https://programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr 계산해야 할 값의 최솟값의 개수가 최대 1,000,000개 이므로 heapq 사용 주어진 문제대로 알고리즘 구성함 import heapq def solution(scoville, K): answer = 0 mix = 0 heapq.heapify(scoville) while True: if len(scoville)= K: break else: retu..

LIST