본문 바로가기

분류 전체보기293

백준 1427번. 소트인사이드 (Python / 파이썬) 문제 배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자. 입력 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. 출력 첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다. 문제 풀이 소트인사이드 문제는 수가 주어졌을 때, 그 수의 각 자리수를 내림차순으로 정렬하는 문제입니다. 정렬하려고 하는 수를 문자열로 입력받아주었습니다. 각 자리수를 정렬할 원소로 인식해야 하므로 각 자리수를 저장할 list를 만들어 각 자리수를 정수 값으로 변환하여 list에 삽입해주었습니다. sort() 함수는 기본적으로 원소를 오름차순으로 정렬해줍니다. 따라서 reverse = True를 해주면 내림차순으로 정렬할 수 있습니다. so.. 2022. 4. 18.
백준 11725번. 트리의 부모 찾기 (Python / 파이썬) 문제 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 노드의 개수 N (2 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N-1개의 줄에 트리 상에서 연결된 두 정점이 주어진다. 출력 첫째 줄부터 N-1개의 줄에 각 노드의 부모 노드 번호를 2번 노드부터 순서대로 출력한다. 문제 풀이 트리의 부모 찾기 문제는 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 문제입니다. 트리의 루트가 1이므로 1부터 탐색을 진행하면 됩니다. 1부터 해당 노드와 연결된 노드들을 확인하고 만약 아직 부모노드가 정해지지 않았다면 해당 노드를 부모로 정해주면 됩니다. DFS / BFS 알고리즘을 이용하여 문제를 해결해보았습니.. 2022. 4. 15.
백준 2468번. 안전 영역 (Python / 파이썬) 문제 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 안전한 영역이 최대로 몇 개가 만들어 지는 지를 조사하려고 한다. 이때, 문제를 간단하게 하기 위하여, 장마철에 내리는 비의 양에 따라 일정한 높이 이하의 모든 지점은 물에 잠긴다고 가정한다. 어떤 지역의 높이 정보는 행과 열의 크기가 각각 N인 2차원 배열 형태로 주어지며 배열의 각 원소는 해당 지점의 높이를 표시하는 자연수이다. 예를 들어, 다음은 N=5인 지역의 높이 정보이다. 이제 위와 같은 지역에 많은 비가 내려서 높이가 4 이하인 모든 지점이 물에 잠겼다고 하자. 이 경우에 물에 잠기는 지점을 회색으로 .. 2022. 4. 15.
백준 2583 번. 영역 구하기 (Python / 파이썬) 문제 눈금의 간격이 1인 M×N(M,N≤100)크기의 모눈종이가 있다. 이 모눈종이 위에 눈금에 맞추어 K개의 직사각형을 그릴 때, 이들 K개의 직사각형의 내부를 제외한 나머지 부분이 몇 개의 분리된 영역으로 나누어진다. 예를 들어 M=5, N=7 인 모눈종이 위에 과 같이 직사각형 3개를 그렸다면, 그 나머지 영역은 와 같이 3개의 분리된 영역으로 나누어지게 된다. 와 같이 분리된 세 영역의 넓이는 각각 1, 7, 13이 된다. M, N과 K 그리고 K개의 직사각형의 좌표가 주어질 때, K개의 직사각형 내부를 제외한 나머지 부분이 몇 개의 분리된 영역으로 나누어지는지, 그리고 분리된 각 영역의 넓이가 얼마인지를 구하여 이를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 M과 N, 그리고 K가 빈칸을 .. 2022. 4. 15.