본문 바로가기

백준알고리즘313

[백준] 23351번: 물 주기 (python) 23351번: 물 주기 문제 ) 랑이 집사는 고양이들이 좋아한다는 캣닢을 직접 재배하려고 한다. 일직선으로 놓여진 N개의 화분에 캣닢이 하나씩 심어져 있다. 각 화분은 초기에 K만큼의 수분을 머금고 있고, 매일 아래와 같은 일이 순서대로 일어난다. 1. 랑이 집사가 연속된 A개의 화분에 물을 준다. 이 때 물을 준 화분의 수분은 B만큼씩 증가한다. 2. 모든 화분의 수분이 1씩 감소한다. 3. 수분이 0이 된 화분에 있는 캣닢은 죽는다. 모든 캣닢이 살아 있는 기간이 최대한 길어지도록 물을 줄 때, 첫 캣닢이 죽는 날짜를 출력하는 프로그램을 작성하시오. 첫 날은 1일이다. 입력 : 첫째 줄에 자연수 N, K, A, B가 공백을 사이에 두고 주어진다. 출력 : 모든 캣닢이 살아 있는 기간이 최대한 길어지도.. 2022. 1. 17.
[백준] 1181번: 단어 정렬 (python) 1181. 단어 정렬 문제 ) 알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오. 길이가 짧은 것부터 길이가 같으면 사전 순으로 입력 : 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. 출력 : 조건에 따라 정렬하여 단어들을 출력한다. 단, 같은 단어가 여러 번 입력된 경우에는 한 번씩만 출력한다. 풀이) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 test = int(input()) #단어의 개수 N dic = [] #단어를 입력받아 리스트에 저장 .. 2022. 1. 16.
[백준] 11050번: 이항 계수 1 (python) 11050번: 이항 계수 1 문제 ) 자연수 N과 정수 K가 주어졌을 때 이항 계수$$\begin{pmatrix} N \\ K \end{pmatrix} $$를 구하는 프로그램을 작성하시오. 입력 : 첫째 줄에 N과 K가 주어진다.$$ (1\leq N\leq 10, 0\leq K\leq N)$$ 출력 : $$\begin{pmatrix} N \\ K \end{pmatrix} $$를 출력한다. 풀이) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 nums = input() nums = nums.split(" ") nums = list(map(int, nums)) n = 1 # N! for i in range(1, nums[0]+1): n *= i k = 1 # K! for i in.. 2022. 1. 16.
[백준] 15829번: Hashing (python) 15829번: Hashing 문제 ) APC에 온 것을 환영한다. 만약 여러분이 학교에서 자료구조를 수강했다면 해시 함수에 대해 배웠을 것이다. 해시 함수란 임의의 길이의 입력을 받아서 고정된 길이의 출력을 내보내는 함수로 정의한다. 해시 함수는 무궁무진한 응용 분야를 갖는데, 대표적으로 자료의 저장과 탐색에 쓰인다. 이 문제에서는 여러분이 앞으로 유용하게 쓸 수 있는 해시 함수를 하나 가르쳐주고자 한다. 먼저, 편의상 입력으로 들어오는 문자열에는 영문 소문자(a, b, ..., z)로만 구성되어있다고 가정하자 . 영어에는 총 26개의 알파벳이 존재하므로 a에는 1, b에는 2, c에는 3, ..., z에는 26으로 고유한 번호를 부여할 수 있다. 결과적으로 우리는 하나의 문자열을 수열로 변환할 수 있다.. 2022. 1. 16.