분류 전체보기127 백준 알고리즘: 10867번 중복 빼고 정렬하기 (Python) 문제 정보 10867번: 중복 빼고 정렬하기 첫째 줄에 수의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. www.acmicpc.net 핵심 쉬어가는 문제 set으로 중복 제거, map()으로 str->int 형변환, sorted()로 정렬 풀이 import sys _ = sys.stdin.readline() i = sorted(list(map(int, set(sys.stdin.readline().rstrip().split())))) for p in i: print(p, end=' ') 고찰 for p in i: print(p, end=' ') print(*i) 배열 앞에 *을 붙여서 출력하는 것이 위 for문에서 .. 알고리즘/Python 2023. 6. 1. 백준 알고리즘: 11651번 좌표 정렬하기 2 (Python) 문제 정보 11651번: 좌표 정렬하기 2 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 핵심 백준 알고리즘: 11650번 좌표 정렬하기 (Python) 문제 정보 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, dduneon.tistory.com 이 문제와 동일함, 다만 정렬의 순서가 다를 뿐.. 알고리즘/Python 2023. 6. 1. 백준 알고리즘: 11650번 좌표 정렬하기 (Python) 문제 정보 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 핵심 x좌표가 정렬의 기준이 되고, y좌표를 나중에 정렬하면 된다 하지만 이를 쉽게 풀어갈 수 없었던 것은 각각 다른 배열로 분리해서도 안되었고 그 자체에서 어떻게 정렬할 수 있을까에 대한 생각을 많이 하게 되었다 또한, 이를 제출하면서 많은 런타임 에러들을 마주하였는데 이는 sys.stdin 의 입력 라이브러리를 사용하면서 발생하였었는데 해결 방법을 찾았다 풀이 import sys def sol(.. 알고리즘/Python 2023. 6. 1. 백준 알고리즘: 1181번 단어 정렬 (Python) 문제 정보 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 핵심 1. 해당 단어들은 중복을 허용하지 않음 2. 길이가 짧은것부터 정렬하고, 길이가 같다면 사전순으로 정렬해야 함 풀이 나의 첫번째 풀이 import sys def sol(): n = int(input()) words = [set() for _ in range(50)] for _ in range(n): l = input() words[len(l)-1].add(l) for w in words: if w: for w in sorted(lis.. 알고리즘/Python 2023. 5. 30. 백준 알고리즘: 1026번 보물 (Python) 문제 정보 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net 핵심 이 문제를 보자마자 생각한 해결방법은 A 배열과 B 배열을 각각 정렬하고, 최소 결과가 나와야되므로 두 배열 중 하나의 배열은 역으로 정렬하여 같은 인덱스의 요소끼리 곱해서 답을 출력하면 될것이라고 생각했다 실제 풀이해보니 해당 방식이 맞았고 그렇게 오래 걸리지도 않고 코드도 간결하게 풀이할 수 있었다 풀이 import sys def sol(): _ = sys.stdin.readline() A = list(map(int, sys.stdin.. 알고리즘/Python 2023. 5. 30. 이전 1 ··· 14 15 16 17 18 19 20 ··· 26 다음