baekjoon 383

[baekjoon] 백준 2667번(파이썬): 단지번호붙이기

문제 - 과 같이 정사각형 모양의 지도가 있다. - 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. - 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. - 여기서 연결되었다는 것은 어떤 집이 좌우, 혹은 아래위로 다른 집이 있는 경우를 말한다. - 대각선상에 집이 있는 경우는 연결된 것이 아니다. - 는 을 단지별로 번호를 붙인 것이다. - 지도를 입력하여 단지수를 출력하고, 각 단지에 속하는 집의 수를 오름차순으로 정렬하여 출력하는 문제이다. - 지도의 크기 N(정사각형이므로 가로와 세로의 크기는 같으며 5≤N≤25)이 입력된다. - 그 다음 N줄에는 각각 N개의 자료(0혹은 1)가 입력된다. 알고리즘 - dfs를 통해 연결된 노드를 재귀적으로 모두 확..

CodingTest/Baekjoon 2021.07.14

[baekjoon] 백준 2178번(파이썬): 미로 탐색

문제 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net - N×M크기의 배열로 표현되는 미로가 있다. 1 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 1 - 미로에서 1은 이동할 수 있는 칸을 나타내고, 0은 이동할 수 없는 칸을 나타낸다. - 이러한 미로가 주어졌을 때, (1, 1)에서 출발하여 (N, M)의 위치로 이동할 때 지나야 하는 최소의 칸 수를 구하는 문제이다. - 한 칸에서 다른 칸으로 이동할 때, 서로 인접한 칸으로만 이동할 수 있다. - 위의 예에서는 15칸을 지나야 (N, M)의 위치로 이..

CodingTest/Baekjoon 2021.07.13

[baekjoon] 백준 1260번(파이썬): DFS와 BFS

문제 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net - 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. - 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. - 정점 번호는 1번부터 N번까지이다. - 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. - 다음 M..

CodingTest/Baekjoon 2021.07.12

[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