Python 390

[baekjoon] 백준 13164번(파이썬): 행복 유치원

문제 13164번: 행복 유치원 행복 유치원 원장인 태양이는 어느 날 N명의 원생들을 키 순서대로 일렬로 줄 세우고, 총 K개의 조로 나누려고 한다. 각 조에는 원생이 적어도 한 명 있어야 하며, 같은 조에 속한 원생들은 서로 www.acmicpc.net - 행복 유치원 원장인 태양이는 어느 날 N명의 원생들을 키 순서대로 일렬로 줄 세우고, 총 K개의 조로 나누려고 한다. - 각 조에는 원생이 적어도 한 명 있어야 하며, 같은 조에 속한 원생들은 서로 인접해 있어야 한다. - 조별로 인원수가 같을 필요는 없다. - 이렇게 나뉘어진 조들은 각자 단체 티셔츠를 맞추려고 한다. - 조마다 티셔츠를 맞추는 비용은 조에서 가장 키가 큰 원생과 가장 키가 작은 원생의 키 차이만큼 든다. - 최대한 비용을 아끼고 ..

CodingTest/Baekjoon 2021.07.11

[baekjoon] 백준 13417번(파이썬): 카드 문자열

문제 13417번: 카드 문자열 입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫째 줄에 테스트 케이스의 개수를 나타내는 자연수 T가 주어진다. 각각의 테스트 케이스의 첫째 줄에 처 www.acmicpc.net - N장의 카드가 일렬로 놓여있다. - 각 카드에는 알파벳이 하나씩 적혀있다. - 태욱이는 가장 왼쪽에 있는 카드부터 차례대로 한 장씩 가져올 수 있다. - 가장 처음에 가져온 카드는 자신의 앞에 놓는다. - 그다음부터는 가져온 카드를 자신의 앞에 놓인 카드들의 가장 왼쪽, 또는 가장 오른쪽에 놓는다. 태욱이는 모든 카드를 다 가져온 후에 자신의 앞에 놓인 카드를 순서대로 이어 붙여 카드 문자열을 만들려고 한다. - 예를 들어 3장의 카드가 [M, K, U]..

CodingTest/Baekjoon 2021.07.10

[baekjoon] 백준 11508번(파이썬): 2+1 세일

문제 11508번: 2+1 세일 KSG 편의점에서는 과일우유, 드링킹요구르트 등의 유제품을 '2+1 세일'하는 행사를 하고 있습니다. KSG 편의점에서 유제품 3개를 한 번에 산다면 그중에서 가장 싼 것은 무료로 지불하고 나머지 두 www.acmicpc.net - KSG 편의점에서는 과일우유, 드링킹요구르트 등의 유제품을 '2+1 세일'하는 행사를 하고 있습니다. - KSG 편의점에서 유제품 3개를 한 번에 산다면 그중에서 가장 싼 것은 무료로 지불하고 나머지 두 개의 제품 가격만 지불하면 됩니다. - 한 번에 3개의 유제품을 사지 않는다면 할인 없이 정가를 지불해야 합니다. - 예를 들어, 7개의 유제품이 있어서 각 제품의 가격이 10, 9, 4, 2, 6, 4, 3이고 재현이가 (10, 3, 2), ..

CodingTest/Baekjoon 2021.07.09

[baekjoon] 백준 12904번(파이썬): A와 B

문제 12904번: A와 B 수빈이는 A와 B로만 이루어진 영어 단어가 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란 수 www.acmicpc.net - 두 문자열 S와 T가 주어졌을 때, S를 T로 바꾸는 게임이다. - 문자열을 바꿀 때는 다음과 같은 두 가지 연산만 가능하다. 문자열의 뒤에 A를 추가한다. 문자열을 뒤집고 뒤에 B를 추가한다. - 주어진 조건을 이용해서 S를 T로 만들 수 있는지 없는지 알아내는 문제이다. - S와 T가 주어진다. (1 ≤ S의 길이 ≤ 999, 2 ≤ T의 길이 ≤ 1000, S의 길이 < T의 길이) - S를 T로 바꿀 수 있으면..

CodingTest/Baekjoon 2021.07.08

[baekjoon] 백준 9009번(파이썬): 피보나치

문제 9009번: 피보나치 입력 데이터는 표준입력을 사용한다. 입력은 T 개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 테스트 데이터의 수를 나타내는 정수 T 가 주어진다. 각 테스트 데이터에는 하나의 정수 n www.acmicpc.net - 피보나치 수 ƒK는 ƒK = ƒK-1 + ƒK-2로 정의되며 초기값은 ƒ0 = 0과 ƒ1 = 1 이다. - 양의 정수는 하나 혹은 그 이상의 서로 다른 피보나치 수들의 합으로 나타낼 수 있다는 사실은 잘 알려져 있다. - 하나의 양의 정수에 대한 피보나치 수들의 합은 여러 가지 형태가 있다. - 예를 들어 정수 100은 ƒ4 + ƒ6 + ƒ11 = 3 + 8 + 89 또는 ƒ1 + ƒ3 + ƒ6 + ƒ11 = 1 + 2 + 8 + 89, 또는 ƒ4 + ƒ6..

CodingTest/Baekjoon 2021.07.07

[baekjoon] 백준 1343번(파이썬): 폴리오미노

문제 1343번: 폴리오미노 첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다. www.acmicpc.net - 민식이는 다음과 같은 폴리오미노 2개를 무한개만큼 가지고 있다. AAAA와 BB - 이제 '.'와 'X'로 이루어진 보드판이 주어졌을 때, 민식이는 겹침없이 'X'를 모두 폴리오미노로 덮으려고 한다. - 이때, '.'는 폴리오미노로 덮으면 안 된다. - 폴리오미노로 모두 덮은 보드판을 구하는 문제이다. - 보드판의 크기는 최대 500이다. - 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다. 알고리즘 - 보드판을 입력받는다. - replace 함수를 통해 찾을값과 바꿀 값을 설정하여 바꾼다. - 조건문을 통해 아직도 보드판에 X..

CodingTest/Baekjoon 2021.07.06

[baekjoon] 백준 9237번(파이썬): 이장님 초대

문제 9237번: 이장님 초대 입력은 두 줄로 이루어져 있다. 첫째 줄에는 묘목의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄에는 각 나무가 다 자라는데 며칠이 걸리는지를 나타낸 ti가 주어진다. (1 ≤ ti ≤ 1,000,000) www.acmicpc.net - 농부 상근이는 마당에 심기 위한 나무 묘목 n개를 구입했다. - 묘목 하나를 심는데 걸리는 시간은 1일이고, 상근이는 각 묘목이 다 자라는데 며칠이 걸리는지 정확하게 알고 있다. - 상근이는 마을 이장님을 초대해 자신이 심은 나무를 자랑하려고 한다. - 이장님을 실망시키면 안 되기 때문에, 모든 나무가 완전히 자란 이후에 이장님을 초대하려고 한다. - 즉, 마지막 나무가 다 자란 다음날 이장님을 초대할 것이다. - 상근이는 나..

CodingTest/Baekjoon 2021.07.05

[baekjoon] 백준 17609번(파이썬): 회문

문제 17609번: 회문 각 문자열이 회문인지, 유사 회문인지, 둘 모두 해당되지 않는지를 판단하여 회문이면 0, 유사 회문이면 1, 둘 모두 아니면 2를 순서대로 한 줄에 하나씩 출력한다. www.acmicpc.net - 회문(回文) 또는 팰린드롬(palindrome)은 앞 뒤 방향으로 볼 때 같은 순서의 문자로 구성된 문자열을 말한다. - 예를 들어 ‘abba’ ‘kayak’, ‘reviver’, ‘madam’은 모두 회문이다. - 만일 그 자체는 회문이 아니지만 한 문자를 삭제하여 회문으로 만들 수 있는 문자열이라면 우리는 이런 문자열을 “유사회문”(pseudo palindrome)이라고 부른다. - 예를 들어 ‘summuus’는 5번째나 혹은 6번째 문자 ‘u’를 제거하여 ‘summus’인 회문이..

CodingTest/Baekjoon 2021.07.04

[baekjoon] 백준 15903번(파이썬): 카드 합체 놀이

문제 15903번: 카드 합체 놀이 첫 번째 줄에 카드의 개수를 나타내는 수 n(2 ≤ n ≤ 1,000)과 카드 합체를 몇 번 하는지를 나타내는 수 m(0 ≤ m ≤ 15×n)이 주어진다. 두 번째 줄에 맨 처음 카드의 상태를 나타내는 n개의 자연수 a1, www.acmicpc.net - 오늘 아기 석환이는 무슨 놀이를 하고 있을까? 바로 카드 합체 놀이이다! - 아기 석환이는 자연수가 쓰여진 카드를 n장 갖고 있다. - 처음에 i번 카드엔 ai가 쓰여있다. 카드 합체 놀이는 이 카드들을 합체하며 노는 놀이이다. - 카드 합체는 다음과 같은 과정으로 이루어진다. x번 카드와 y번 카드를 골라 그 두 장에 쓰여진 수를 더한 값을 계산한다. (x ≠ y) 계산한 값을 x번 카드와 y번 카드 두 장 모두에 ..

CodingTest/Baekjoon 2021.07.03

[baekjoon] 백준 16953번(파이썬): A → B

문제 16953번: A → B 첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다. www.acmicpc.net - 정수 A를 B로 바꾸려고 한다. 가능한 연산은 다음과 같은 두 가지이다. 2를 곱한다. 1을 수의 가장 오른쪽에 추가한다. - A를 B로 바꾸는데 필요한 연산의 최솟값을 구하는 문제이다. - A, B (1 ≤ A < B ≤ 109)가 주어진다. - A를 B로 바꾸는데 필요한 연산의 최솟값에 1을 더한 값을 출력한다. - 만들 수 없는 경우에는 -1을 출력한다 알고리즘 - a, b를 입력받는다. - 반복문을 통해 b를 a로 바꾼다. - a와 b가 같거나 a가 b보다 커지는 경우 반복을 멈춰준다. - a가 b보다 크다는 의미는 a로 b를 만들 수 없다는 것이다. - b가 2로 나눠지..

CodingTest/Baekjoon 2021.07.02