본문 바로가기

백준(Python) 풀이112

백준 11650번. 좌표 정렬하기 (Python / 파이썬) 문제 2차원 평면 위의 점 N개가 주어진다. 좌표를 x좌표가 증가하는 순으로, x좌표가 같으면 y좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. 출력 첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다. 문제 풀이 2차원 평면 위의 점이 N개 주어졌을 때 x좌표가 증가하는 순으로, x좌표가 같으면 y좌표가 증가하는 순으로 정렬하는 문제입니다. sort() 함수는 key를 사용할 수 있는데 key는 어떤 원소를 기준으로 정렬할지 지정할 수 있.. 2022. 4. 19.
백준 1181번. 단어 정렬 (Python / 파이썬) 문제 알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오. 1. 길이가 짧은 것부터 2. 길이가 같으면 사전 순으로 입력 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. 출력 조건에 따라 정렬하여 단어들을 출력한다. 단, 같은 단어가 여러 번 입력된 경우에는 한 번씩만 출력한다. 문제 풀이 알파벳 소문자로 이루어진 N개의 단어가 입력되면 길이가 짧은 것부터, 길이가 같으면 사전 순으로 정렬해야 합니다. 이때, 같은 단어가 여러 번 입력된 경우에는 한 번씩만 출력해야 합니다. 따라서, 입력 받은 단어.. 2022. 4. 19.
백준 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.