본문 바로가기
반응형

백준69

[백준 7812] 중앙 트리(파이썬) 문제 출처 : https://www.acmicpc.net/problem/7812 7812번: 중앙 트리 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫 줄에는 트리의 정점의 수 n이 주어진다. (1 ≤ n ≤ 10,000) 각 정점은 0번부터 n-1번까지 번호가 붙여져 있다. 다음 n-1개 줄 www.acmicpc.net 트리 DP의 문제 입니다. 트리와 DP를 합친 문제로 복잡하게 느껴질 수 있지만 하나하나 해결해나가면 문제를 풀 수 있습니다. 이 문제를 풀기 위해서는 모든 정점들의 거리를 계산해야 합니다. 중앙 정점이 어디가 될지 모르기 때문입니다. 무작정 문제를 푼다면 다음과 같이 진행 하면 됩니다. 먼저 A를 중앙 정점으로하여 모든 정점까지의 거리를 구해줍니다. A-B =.. 2023. 8. 28.
[백준 11729] 하노이 탑 이동 순서(파이썬) 문제 출처 : https://www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 하노이 탑은 프랑스 수학자 에두아르 뤼카(Edouard Lucas)가 발표한 게임 입니다. 왼쪽의 읬는 원판을 오른쪽 원판으로 이동시켜야 합니다. 이 때 다음의 규칙이 적용되어야 .. 2023. 8. 24.
[백준 28219] 2023 정올 1차 주유소 문제 출처 : https://www.acmicpc.net/problem/28219 28219번: 주유소 KOI 국가는 $N$개의 마을로 이루어져 있다. 각 마을에는 $1$번 마을, $2$번 마을, $\cdots$, $N$번 마을과 같이 번호가 붙어 있다. 그리고 도로가 $N - 1$개 있는데, 각각의 도로는 서로 다른 두 마을을 잇 www.acmicpc.net 이 문제는 2023년도 정보 올림피아드 1차 중등부 3번, 고등부 2번 문제 입니다. 문제 이해하기 N개의 마을이 있는데 도로가 N - 1개가 있습니다. 정점의 갯수보다 간선의 갯수가 1개 적다면 트리 모형이 아닌가 고민해봐야 합니다. 여기에 임의의 두 마을에 대해 두 마을을 잇는 경로가 정확히 하나 존재한다고 합니다. 이 말은 트리 형태의 마을이.. 2023. 8. 23.
[백준 1655] 가운데를 말해요 문제 출처 : https://www.acmicpc.net/problem/1655 1655번: 가운데를 말해요 첫째 줄에는 백준이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 백준이가 외치는 정수가 차례대로 주어진다. 정수는 -1 www.acmicpc.net 우선순위 큐를 활용한 재미있는 문제입니다. 기초 알고리즘을 소개하는 다빈치 코딩 알고리즘(https://wikidocs.net/book/10280)에 등록하기에는 고난이도 문제라 판단되어 블로그에 등록합니다. 데이터가 입력될 때마다 배열의 중간 값을 찾는 문제 입니다. 배열을 만들어 정렬된 위치에 데이터를 넣는다면 중간값은 쉽게 찾을 수 있습니다. 하지만 배열이 커지.. 2023. 8. 22.
[백준 28326] 2023 정올 고기파티 문제 출처 : https://www.acmicpc.net/problem/28326 28326번: 고기 파티 오늘은 고기 파티가 열리는 날이다. 파티에 걸맞도록, 기다란 그릴 위에 잘 구워진 고기가 총 $N$개 놓여 있다. 그릴을 $10^9$ 의 길이를 가진 선분이라고 하고, 그릴의 왼쪽 끝을 좌표 $0$, 오른쪽 www.acmicpc.net 이 문제는 2023년도 정보 올림피아드 2차 초등부 4번, 중등부 3번 문제 입니다. 문제의 이해 먼저 문제를 이해하도록 해보겠습니다. 첫 번째 예제를 함께 보면서 무엇을 해야하는지 알아보겠습니다. 이와같이 그릴에 고기가 쌓여 있습니다. 여기서 왼쪽 오른쪽에 꼬치를 꽂고 가져갑니다. 가져간 고기들의 맛의 합을 구하는 문제 입니다. 이 때 꼬치 양쪽 모두에 꽂힌 고기만.. 2023. 8. 21.
[백준 25402] 2022 정올 트리와 쿼리 2022년도 정보올림피아드 2차 데회에서 초등부, 중등부, 고등부 모두 나왔던 문제입니다. 그럼 같이 풀어보도록 하겠습니다. 문제의 예제를 살펴 보겠습니다. 아래와 같이 연결 되어 있는데 S = {1, 2, 3, 4, 5, 6} 입니다. 7만 연결이 안되어 있는 상태 입니다. 이것을 아래와 같이 표현할 수 있습니다. 연결되어 있는 노드들을 확인해보면 다음과 같습니다. (1 - 2), (1 - 3), (1 -5), (2 - 3), (2 - 5), (3 - 5), (4 - 6) 이렇게 7개가 연결 되어있고, 연결강도가 7임을 확인할 수 있습니다. 즉 각 노드들이 연결 되어 있는 노드들의 갯수를 확인하는 것이 이 문제 입니다. 모두 구해보기 가장 쉽게 생각하면 S에 포함된 노드들이 각각 연결되어 있는지 확인하.. 2023. 8. 18.
[백준 22344] 2021 정올 그래프 균형 맞추기 문제 출처 : https://www.acmicpc.net/problem/22344 22344번: 그래프 균형 맞추기 N개의 정점과 M개의 간선으로 구성된 무방향 단순 연결 그래프가 있다. 그래프의 정점들에는 1 이상 N 이하의 서로 다른 자연수 번호가 붙어 있고, 간선들에는 1 이상 M 이하의 서로 다른 자연수 www.acmicpc.net 이 문제는 2021년 정보올림피아드 2차 초등부, 고등부 문제 입니다. 초등부 문제이지만 고등부에서도 출제된 문제인 만큼 쉽지 않은 문제 입니다. 문제 자체를 이해하는건 어렵지 않습니다. 간선의 가중치가 있고, 간선과 이어진 두 정점의 합이 간선의 가중치가 되면 됩니다. 예제 입력을 보면서 이해해 보겠습니다. 정점 1, 2, 3을 값과의 혼란을 피하기 위해 A, B, .. 2023. 8. 16.
[백준 21762] 2021 정올 공통 부분 수열 확장 문제 출처 : https://www.acmicpc.net/problem/21762 21762번: 공통 부분 수열 확장 어떤 수열에서 0개 이상의 원소를 삭제해서 얻을 수 있는 수열을 그 수열의 부분수열이라 한다. 예를 들어, aab는 $X$ = ababca의 부분수열이지만, $Y$ = cbabba의 부분수열은 아니다. 두 개의 수열이 주 www.acmicpc.net 이 문제는 2021년 정보올림피아드 1차 고등부 문제 입니다. 두 개의 수열 X, Y의 부분수열 W를 확장 가능한지, 불가능한지 확인 하는 프로그램을 작성하는 것입니다. 예제 입력에 있는 X, Y, W를 살펴 보겠습니다. X = ababca Y = cbabba W = baa X, Y에 W는 공통부분수열이기 때문에 무조건 존재합니다. 이 부분수.. 2023. 8. 15.
파이썬 버전에 따른 백준 런타임 에러(TypeError) 파이썬 에러 백준에서 파이썬 문제를 풀 다 생긴 오류 사항에 대해 공유합니다. 2023년 정보올림피아드 2차 초등부, 중등부 문제인 고기파티를 풀다 생긴 오류 입니다. 문제를 이미 풀긴 했지만 코드의 최적화나 다른 방향으로 풀어보기 위해 이렇게 저렇게 바꿔 보았는데 도저히 알 수 없는 부분에서 계속 TypeError가 발생했습니다. 수정된 부분중 어디가 문제인지 확인하기 위해 하나씩 내용을 원래대로 바꿔가던 중 원인을 찾을 수 있었습니다. 원인 찾기 파이썬 문제를 풀 때 이분 탐색을 사용하려면 bisect 모듈을 사용합니다. C++에서 upper_bound와 같은 역할을 하는 bisect_right 함수를 사용해서 문제를 해결했었습니다. bisect_right, bisect_left 함수를 보니 key를.. 2023. 8. 15.
반응형