본문 바로가기

전체 글

(26)
[BOJ] 2217번 로프 문제 - Python www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net 로프를 역정렬해서 계산한다. 예를 들어서, 로프가 [10, 8, 6, 4, 2] 이렇게 있다고 치면, 앞에서부터 하나씩 추가하면서 계산해보면 들 수 있는 최대무게는 [10, 16, 18, 24, 10]이 된다. 로프의 개수 x 하중의 최소가 되는 것이다. from sys import stdin input = stdin.readline N = int(input()) rope = [] for _ in ra..
[BOJ] 1309번 동물원 문제 - Python www.acmicpc.net/problem/1309 1309번: 동물원 첫째 줄에 우리의 크기 N(1≤N≤100,000)이 주어진다. www.acmicpc.net 생각보다 어려웠다.. k번째 행에 대한 경우는 다음과 같다. 1. k번째 행에 사자가 없는 경우 이는 사실 k-1번째 경우의 수와 같다. k번째 행만 빼고 전부 다 배치하는 건 k-1번까지만 배치하는 것과 같다. 2. k번째 행의 왼쪽에 사자가 있는 경우 이는 k-1번째 경우에서 k-1번째 행의 왼쪽에만 사자가 없는 경우와 같다. 당장 내 바로 위에만 사자가 없으면 얼마든지 배치할 수 있기 때문이다. 3. k번째 행의 오른쪽에 사자가 있는 경우 2의 경우와 같다. 그럼 다음과 같이 풀이하면 된다. 두 개의 배열은 선언한다. 각각 dp1과 dp2..
[BOJ] 15666번 N과 M (12) 문제 - Python www.acmicpc.net/problem/15666 15666번: N과 M (12) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 중복은 가능하나 비오름차순으로 출력해야한다. 따라서 입력받은 숫자를 set 으로 변환 후 다시 list 로 변환해서 겹치는 것을 제거해주고 sort 한뒤 뽑기만 하면 된다. element 안에 아무것도 없을 때는 그냥 순서대로 집어넣고 원소가 있을 때만 비오름차순으로 뽑아준다. N, M = map(int, input().split()) numbers = list(map(int, input().split())..
[BOJ] 15664번 N과 M (10) 문제 www.acmicpc.net/problem/15664 15664번: N과 M (10) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 꽤나 곤란했던 문제다. 2번 예시 처럼 9 7 9 1이 주어졌을 때, 9가 두개라서 9 9가 나타나지만 1 9 는 한번만 나타나야 한다. 따라서 overlap 이라는 변수를 통해서 해당 depth 에서 그 수를 사용했는지 안했는지를 구분했다. 어차피 정렬이 되어있기 때문에, 같은 수가 중복 사용되는 경우는 다 걸러 낼 수 있다. N, M = map(int, input().split()) numbers = l..
[BOJ] 15665번 N과 M (11) 문제 www.acmicpc.net/problem/15665 15665번: N과 M (11) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 같은 수가 여러번 주어져도 무시하고 중복순열로 뽑으면 된다. 따라서 set 을 이용해서 중복을 제거하고 다시 list 로 바꿔서 그냥 중복순열을 뽑아냈다. N, M = map(int, input().split()) numbers = list(map(int, input().split())) numbers = list(set(numbers)) numbers.sort() element = [] def dfs(de..
[BOJ] 2153번 소수 단어 문제 1D1P Day76 BOJ 2153번 소수 단어 문제 - 2021.01.19 - 2153.py 출처 : (BOJ_2153번_소수 단어)[https://www.acmicpc.net/problem/2153] 1도 소수라는 조건을 기억하자. 미리 소수 배열을 만든다. 각 알파벳은 ord를 이용해서 정수로 변환하자. 에라토스테네스의 체를 이용하는 게 더 효율적이겠지만, 그냥 2000개의 배열을 각각 소수 검사했다. 나타날 수 있는 소수의 최대값이 52 * 20 정도이기 때문에 2000 정도면 충분할 것이다. # 1D1P Day76 BOJ 2153번 소수 단어 문제 - 2021.01.19 word = input() primes = [1] * 2000 primes[0] = 0 primes[1] = 1 for i i..
[SQL문] COUNT 함수 programmers.co.kr/ 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 에서 SQL 문제 풀면서 정리. ANIMAL_INS 테이블에 대해서 동물 보호소에 들어온 동물의 수를 세어라. SELECT COUNT(ANIMAL_ID) count FROM ANIMAL_INS; 이러면 ANIMAL_ID의 개수를 세어서 count라는 이름의 column으로 결과가 나온다. 만약 동물 이름의 수를 세어라고 한다면? 중복된 이름의 동물이 있고 중복은 하나로 친다는 조건이 추가되었다. SELECT COUNT(DISTINCT NAME) count FROM ANIMAL..
[Django] Riot API로 전적조회 사이트 만들기 - 1 ediblepotato.tistory.com/4 Riot API 사용해보기 https://developer.riotgames.com/ Riot Developer Portal About the Riot Games API With this site we hope to provide the League of Legends developer community with access to game data in a secure and r.. ediblepotato.tistory.com 에서 Riot API를 사용하는 간단한 방법을 확인했다. 이제 이걸로 전적조회사이트를 대충 만들어보려고 한다. 흔히 사용하는 전적조회사이트를 생각해보자. 해당 소환사명으로 검색하면, 최근 플레이한 게임에 대한 정보가 간략하게 뜬다. ..